summaryrefslogtreecommitdiff
path: root/deps/v8/src/heap/page-parallel-job.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/heap/page-parallel-job.h')
-rw-r--r--deps/v8/src/heap/page-parallel-job.h27
1 files changed, 6 insertions, 21 deletions
diff --git a/deps/v8/src/heap/page-parallel-job.h b/deps/v8/src/heap/page-parallel-job.h
index fffbbd2e40..eb215efbb4 100644
--- a/deps/v8/src/heap/page-parallel-job.h
+++ b/deps/v8/src/heap/page-parallel-job.h
@@ -20,16 +20,10 @@ class Isolate;
// The JobTraits class needs to define:
// - PerPageData type - state associated with each page.
// - PerTaskData type - state associated with each task.
-// - static bool ProcessPageInParallel(Heap* heap,
+// - static void ProcessPageInParallel(Heap* heap,
// PerTaskData task_data,
// MemoryChunk* page,
// PerPageData page_data)
-// The function should return true iff processing succeeded.
-// - static const bool NeedSequentialFinalization
-// - static void FinalizePageSequentially(Heap* heap,
-// bool processing_succeeded,
-// MemoryChunk* page,
-// PerPageData page_data)
template <typename JobTraits>
class PageParallelJob {
public:
@@ -108,21 +102,12 @@ class PageParallelJob {
pending_tasks_->Wait();
}
}
- if (JobTraits::NeedSequentialFinalization) {
- Item* item = items_;
- while (item != nullptr) {
- bool success = (item->state.Value() == kFinished);
- JobTraits::FinalizePageSequentially(heap_, item->chunk, success,
- item->data);
- item = item->next;
- }
- }
}
private:
- static const int kMaxNumberOfTasks = 10;
+ static const int kMaxNumberOfTasks = 32;
- enum ProcessingState { kAvailable, kProcessing, kFinished, kFailed };
+ enum ProcessingState { kAvailable, kProcessing, kFinished };
struct Item : public Malloced {
Item(MemoryChunk* chunk, typename JobTraits::PerPageData data, Item* next)
@@ -158,9 +143,9 @@ class PageParallelJob {
}
for (int i = 0; i < num_items_; i++) {
if (current->state.TrySetValue(kAvailable, kProcessing)) {
- bool success = JobTraits::ProcessPageInParallel(
- heap_, data_, current->chunk, current->data);
- current->state.SetValue(success ? kFinished : kFailed);
+ JobTraits::ProcessPageInParallel(heap_, data_, current->chunk,
+ current->data);
+ current->state.SetValue(kFinished);
}
current = current->next;
// Wrap around if needed.