Index: src/heap/store-buffer.cc |
diff --git a/src/heap/store-buffer.cc b/src/heap/store-buffer.cc |
index 03f587f2154e14bc3093a920cc5be7c4ba200154..a5191dc748e34e944b015b52c67207c6ba537553 100644 |
--- a/src/heap/store-buffer.cc |
+++ b/src/heap/store-buffer.cc |
@@ -472,10 +472,9 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback) { |
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(); |
+ // sweeper thread currently owns this page. Wait for the sweeper |
+ // thread to be done with this page. |
+ page->WaitUntilSweepingCompleted(); |
} |
} |
CHECK(page->owner() == heap_->old_space()); |