Index: third_party/WebKit/Source/platform/heap/ThreadState.cpp |
diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.cpp b/third_party/WebKit/Source/platform/heap/ThreadState.cpp |
index 4a1efe48e8904b9f5bcf581155bcf3d28980ee82..92148179428fb84048c98097305c44fffdcfd20a 100644 |
--- a/third_party/WebKit/Source/platform/heap/ThreadState.cpp |
+++ b/third_party/WebKit/Source/platform/heap/ThreadState.cpp |
@@ -678,6 +678,13 @@ void ThreadState::scheduleV8FollowupGCIfNeeded(V8GCType gcType) |
if (isGCForbidden()) |
return; |
+ // If V8 has acted on a memory pressure signal and performed a major GC, |
+ // follow up, if needed. |
+ if (gcType == V8MajorGC && shouldForceMemoryPressureGC()) { |
haraken
2015/09/26 02:04:37
A better form would be:
if (shouldForceMemoryPres
haraken
2015/09/26 02:04:37
Is there any reason we want to limit this to V8Maj
sof
2015/09/26 06:17:22
v8 will force major GCs on detecting/being signall
sof
2015/09/26 06:17:22
We've been over that two-step formulation before i
sof
2015/09/26 06:17:22
Done.
|
+ Heap::collectGarbage(HeapPointersOnStack, GCWithoutSweep, Heap::ConservativeGC); |
+ return; |
+ } |
+ |
if (isSweepingInProgress()) |
return; |
ASSERT(!sweepForbidden()); |