| Index: Source/platform/heap/ThreadState.h
|
| diff --git a/Source/platform/heap/ThreadState.h b/Source/platform/heap/ThreadState.h
|
| index c50caa516de3d0c73515aaad5c8992d486a56937..88349d3f65b8863680dbfc86b6c1352ce440b2ca 100644
|
| --- a/Source/platform/heap/ThreadState.h
|
| +++ b/Source/platform/heap/ThreadState.h
|
| @@ -178,8 +178,14 @@ public:
|
| };
|
|
|
| enum GCType {
|
| - GCWithSweep, // Sweeping is completed in Heap::collectGarbage().
|
| - GCWithoutSweep, // Lazy sweeping is scheduled.
|
| + // Run a marking task and a sweeping task in Heap::collectGarbage().
|
| + GCWithSweep,
|
| + // Run only a marking task in Heap::collectGarbage(). A sweeping task
|
| + // is split into chunks and scheduled lazily.
|
| + GCWithoutSweep,
|
| + // Run a marking task just to take a heap snapshot. A sweeping task
|
| + // doesn't run and the marks are just dropped.
|
| + TakeSnapshot,
|
| };
|
|
|
| // See setGCState() for possible state transitions.
|
| @@ -340,6 +346,10 @@ public:
|
| void preSweep();
|
| void completeSweep();
|
| void postSweep();
|
| + // makeConsistentForMutator() drops marks from marked objects and rebuild
|
| + // free lists. This is called after taking a snapshot and before resuming
|
| + // the executions of mutators.
|
| + void makeConsistentForMutator();
|
|
|
| // Support for disallowing allocation. Mainly used for sanity
|
| // checks asserts.
|
| @@ -650,6 +660,7 @@ private:
|
| void unregisterPreFinalizerInternal(void*);
|
| void invokePreFinalizers(Visitor&);
|
|
|
| + void takeSnapshot();
|
| #if ENABLE(GC_PROFILING)
|
| void snapshotFreeList();
|
| #endif
|
|
|