| Index: Source/platform/heap/ThreadState.h
|
| diff --git a/Source/platform/heap/ThreadState.h b/Source/platform/heap/ThreadState.h
|
| index f8af346631fa121da15e5d4ba5d5858c4069318a..c8c6ed7cb780a82708b0cb19fe758058c3a0f7db 100644
|
| --- a/Source/platform/heap/ThreadState.h
|
| +++ b/Source/platform/heap/ThreadState.h
|
| @@ -185,8 +185,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.
|
| @@ -347,6 +353,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.
|
| @@ -657,6 +667,7 @@ private:
|
| void unregisterPreFinalizerInternal(void*);
|
| void invokePreFinalizers(Visitor&);
|
|
|
| + void takeSnapshot();
|
| #if ENABLE(GC_PROFILING)
|
| void snapshotFreeList();
|
| #endif
|
|
|