| Index: src/mark-compact.h
|
| diff --git a/src/mark-compact.h b/src/mark-compact.h
|
| index 2a1d97dc2aefc98c382a27419c2a575e6e53cedb..c966e2018e0e0c9b8ba87b02604dd91510e63b23 100644
|
| --- a/src/mark-compact.h
|
| +++ b/src/mark-compact.h
|
| @@ -571,6 +571,8 @@ class MarkCompactCollector {
|
|
|
| static void Initialize();
|
|
|
| + void SetUp();
|
| +
|
| void TearDown();
|
|
|
| void CollectEvacuationCandidates(PagedSpace* space);
|
| @@ -715,13 +717,11 @@ class MarkCompactCollector {
|
| MarkingParity marking_parity() { return marking_parity_; }
|
|
|
| // Concurrent and parallel sweeping support.
|
| - void SweepInParallel(PagedSpace* space,
|
| - FreeList* private_free_list,
|
| - FreeList* free_list);
|
| + void SweepInParallel(PagedSpace* space);
|
|
|
| void WaitUntilSweepingCompleted();
|
|
|
| - intptr_t StealMemoryFromSweeperThreads(PagedSpace* space);
|
| + intptr_t RefillFreeLists(PagedSpace* space);
|
|
|
| bool AreSweeperThreadsActivated();
|
|
|
| @@ -744,7 +744,9 @@ class MarkCompactCollector {
|
| void MarkAllocationSite(AllocationSite* site);
|
|
|
| private:
|
| - MarkCompactCollector();
|
| + class SweeperTask;
|
| +
|
| + explicit MarkCompactCollector(Heap* heap);
|
| ~MarkCompactCollector();
|
|
|
| bool MarkInvalidatedCode();
|
| @@ -791,6 +793,8 @@ class MarkCompactCollector {
|
| // True if concurrent or parallel sweeping is currently in progress.
|
| bool sweeping_pending_;
|
|
|
| + Semaphore pending_sweeper_jobs_semaphore_;
|
| +
|
| bool sequential_sweeping_;
|
|
|
| // A pointer to the current stack-allocated GC tracer object during a full
|
| @@ -940,6 +944,12 @@ class MarkCompactCollector {
|
|
|
| void SweepSpace(PagedSpace* space, SweeperType sweeper);
|
|
|
| + // Finalizes the parallel sweeping phase. Marks all the pages that were
|
| + // swept in parallel.
|
| + void ParallelSweepSpacesComplete();
|
| +
|
| + void ParallelSweepSpaceComplete(PagedSpace* space);
|
| +
|
| #ifdef DEBUG
|
| friend class MarkObjectVisitor;
|
| static void VisitObject(HeapObject* obj);
|
| @@ -957,6 +967,9 @@ class MarkCompactCollector {
|
| List<Page*> evacuation_candidates_;
|
| List<Code*> invalidated_code_;
|
|
|
| + SmartPointer<FreeList> free_list_old_data_space_;
|
| + SmartPointer<FreeList> free_list_old_pointer_space_;
|
| +
|
| friend class Heap;
|
| };
|
|
|
|
|