Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(467)

Unified Diff: Source/platform/heap/ThreadState.h

Issue 1159773004: Oilpan: Implement a GC to take a heap snapshot (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/platform/heap/ThreadState.h
diff --git a/Source/platform/heap/ThreadState.h b/Source/platform/heap/ThreadState.h
index 3b2c8d649be43b4dc04a4e88083f4b4c0947efe3..d5c4c4cb639919fe60c5f051a48eff3fdd593bf1 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.
@@ -334,8 +340,8 @@ public:
// In this case, the next GC just cancels the remaining lazy sweeping.
// Specifically, preGC() of the next GC calls makeConsistentForSweeping()
// and it marks all not-yet-swept objets as dead.
- void makeConsistentForSweeping();
- void preGC();
+ void makeConsistentForSweeping(GCType);
+ void preGC(GCType);
void postGC(GCType);
void preSweep();
void completeSweep();
@@ -650,6 +656,7 @@ private:
void unregisterPreFinalizerInternal(void*);
void invokePreFinalizers(Visitor&);
+ void takeSnapshot();
#if ENABLE(GC_PROFILING)
void snapshotFreeList();
#endif

Powered by Google App Engine
This is Rietveld 408576698