Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index af6894c5755b2a6d7a14a853c3d3fd1ddb83de73..4c8db42035bb8c5722fe9b2fbe73b35d87f43f54 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -519,12 +519,15 @@ void MarkCompactCollector::EnsureSweepingCompleted() { |
SweepInParallel(heap()->paged_space(CODE_SPACE), 0); |
SweepInParallel(heap()->paged_space(MAP_SPACE), 0); |
} |
- // Wait twice for both jobs. |
+ |
if (heap()->concurrent_sweeping_enabled()) { |
pending_sweeper_jobs_semaphore_.Wait(); |
pending_sweeper_jobs_semaphore_.Wait(); |
pending_sweeper_jobs_semaphore_.Wait(); |
} |
+ |
+ heap()->WaitUntilUnmappingOfFreeChunksCompleted(); |
+ |
ParallelSweepSpacesComplete(); |
sweeping_in_progress_ = false; |
RefillFreeList(heap()->paged_space(OLD_SPACE)); |