Re-enable parallel pointer updates.

BUG=chromium:578883
LOG=NO

Review URL: https://codereview.chromium.org/1811653002

Cr-Commit-Position: refs/heads/master@{#34838}
This commit is contained in:
ulan 2016-03-16 12:43:09 -07:00 committed by Commit bot
parent dddb12c4d6
commit 85ce1056fa
3 changed files with 9 additions and 8 deletions

View File

@ -94,8 +94,7 @@ Semaphore::~Semaphore() {
void Semaphore::Signal() {
int result = sem_post(&native_handle_);
DCHECK_EQ(0, result);
USE(result);
CHECK_EQ(0, result);
}

View File

@ -693,7 +693,7 @@ DEFINE_INT(max_incremental_marking_finalization_rounds, 3,
DEFINE_BOOL(black_allocation, false, "use black allocation")
DEFINE_BOOL(concurrent_sweeping, true, "use concurrent sweeping")
DEFINE_BOOL(parallel_compaction, true, "use parallel compaction")
DEFINE_BOOL(parallel_pointer_update, false,
DEFINE_BOOL(parallel_pointer_update, true,
"use parallel pointer update during compaction")
DEFINE_BOOL(trace_incremental_marking, false,
"trace progress of the incremental marking")

View File

@ -3585,14 +3585,16 @@ int NumberOfPointerUpdateTasks(int pages) {
template <PointerDirection direction>
void UpdatePointersInParallel(Heap* heap) {
PageParallelJob<PointerUpdateJobTraits<direction> > job(
heap, heap->isolate()->cancelable_task_manager());
PageParallelJob<PointerUpdateJobTraits<direction> >* job =
new PageParallelJob<PointerUpdateJobTraits<direction> >(
heap, heap->isolate()->cancelable_task_manager());
RememberedSet<direction>::IterateMemoryChunks(
heap, [&job](MemoryChunk* chunk) { job.AddPage(chunk, 0); });
heap, [job](MemoryChunk* chunk) { job->AddPage(chunk, 0); });
PointersUpdatingVisitor visitor(heap);
int num_pages = job.NumberOfPages();
int num_pages = job->NumberOfPages();
int num_tasks = NumberOfPointerUpdateTasks(num_pages);
job.Run(num_tasks, [&visitor](int i) { return &visitor; });
job->Run(num_tasks, [&visitor](int i) { return &visitor; });
delete job;
}
void MarkCompactCollector::UpdatePointersAfterEvacuation() {