Index: src/heap/mark-compact.h |
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h |
index 843e73d8e7dfa7d026036e70a8c80d9cd206204f..12da2d66747a939140dcdaf0816574513cd9ad03 100644 |
--- a/src/heap/mark-compact.h |
+++ b/src/heap/mark-compact.h |
@@ -668,6 +668,7 @@ class MarkCompactCollector { |
void RemoveObjectSlots(Address start_slot, Address end_slot); |
private: |
+ class CompactionTask; |
class SweeperTask; |
explicit MarkCompactCollector(Heap* heap); |
@@ -705,8 +706,12 @@ class MarkCompactCollector { |
// True if concurrent or parallel sweeping is currently in progress. |
bool sweeping_in_progress_; |
+ // Synchronize sweeper threads. |
base::Semaphore pending_sweeper_jobs_semaphore_; |
+ // Synchronize compaction threads. |
+ base::Semaphore pending_compaction_jobs_semaphore_; |
+ |
bool evacuation_; |
SlotsBufferAllocator slots_buffer_allocator_; |
@@ -865,6 +870,8 @@ class MarkCompactCollector { |
void EvacuatePages(); |
+ void EvacuatePagesInParallel(); |
+ |
void EvacuateNewSpaceAndCandidates(); |
void ReleaseEvacuationCandidates(); |