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

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

Issue 2531973002: Simple BlinkGC heap compaction. (Closed)
Patch Set: cros compile fix Created 4 years 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: third_party/WebKit/Source/platform/heap/ThreadState.h
diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.h b/third_party/WebKit/Source/platform/heap/ThreadState.h
index 4f04eb71dabdfa9b7ba3fd19a7f162bb88e87fbb..8487fa50e8d16328d44b12ec9e15cc1943dcb6b1 100644
--- a/third_party/WebKit/Source/platform/heap/ThreadState.h
+++ b/third_party/WebKit/Source/platform/heap/ThreadState.h
@@ -285,6 +285,8 @@ class PLATFORM_EXPORT ThreadState {
// the executions of mutators.
void makeConsistentForMutator();
+ void compact();
+
// Support for disallowing allocation. Mainly used for sanity
// checks asserts.
bool isAllocationAllowed() const {
@@ -322,6 +324,19 @@ class PLATFORM_EXPORT ThreadState {
ThreadState* const m_threadState;
};
+ class GCForbiddenScope final {
+ STACK_ALLOCATED();
+
+ public:
+ GCForbiddenScope(ThreadState* threadState) : m_threadState(threadState) {
+ m_threadState->enterGCForbiddenScope();
+ }
+ ~GCForbiddenScope() { m_threadState->leaveGCForbiddenScope(); }
+
+ private:
+ ThreadState* const m_threadState;
+ };
+
void flushHeapDoesNotContainCacheIfNeeded();
// Safepoint related functionality.
@@ -561,6 +576,8 @@ class PLATFORM_EXPORT ThreadState {
v8::Isolate* isolate() const { return m_isolate; }
+ BlinkGC::StackState stackState() const { return m_stackState; }
+
void collectGarbage(BlinkGC::StackState, BlinkGC::GCType, BlinkGC::GCReason);
void collectGarbageForTerminatingThread();
void collectAllGarbage();

Powered by Google App Engine
This is Rietveld 408576698