| Index: src/heap/store-buffer.cc
|
| diff --git a/src/heap/store-buffer.cc b/src/heap/store-buffer.cc
|
| index 38d8462df866127507e93ffce45c4249c075c20f..03f587f2154e14bc3093a920cc5be7c4ba200154 100644
|
| --- a/src/heap/store-buffer.cc
|
| +++ b/src/heap/store-buffer.cc
|
| @@ -468,9 +468,17 @@
|
| }
|
| }
|
| } else {
|
| + if (!page->SweepingCompleted()) {
|
| + heap_->mark_compact_collector()->SweepInParallel(page, owner);
|
| + if (!page->SweepingCompleted()) {
|
| + // We were not able to sweep that page, i.e., a concurrent
|
| + // sweeper thread currently owns this page.
|
| + // TODO(hpayer): This may introduce a huge pause here. We
|
| + // just care about finish sweeping of the scan on scavenge page.
|
| + heap_->mark_compact_collector()->EnsureSweepingCompleted();
|
| + }
|
| + }
|
| CHECK(page->owner() == heap_->old_space());
|
| - heap_->mark_compact_collector()->EnsureSweepingCompleted(page,
|
| - owner);
|
| HeapObjectIterator iterator(page, NULL);
|
| for (HeapObject* heap_object = iterator.Next(); heap_object != NULL;
|
| heap_object = iterator.Next()) {
|
|
|