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 5dade81422fb90875c853471da1f73fa91d9e779..3f44c9ea19cf25e42c18270c2e634550240e8bb0 100644 |
--- a/third_party/WebKit/Source/platform/heap/ThreadState.cpp |
+++ b/third_party/WebKit/Source/platform/heap/ThreadState.cpp |
@@ -467,9 +467,8 @@ void ThreadState::threadLocalWeakProcessing() |
TRACE_EVENT0("blink_gc", "ThreadState::threadLocalWeakProcessing"); |
double startTime = WTF::currentTimeMS(); |
- SweepForbiddenScope forbiddenScope(this); |
- if (isMainThread()) |
- ScriptForbiddenScope::enter(); |
+ SweepForbiddenScope sweepForbiddenScope(this); |
+ ScriptForbiddenIfMainThreadScope scriptForbiddenScope; |
// Disallow allocation during weak processing. |
// It would be technically safe to allow allocations, but it is unsafe |
@@ -485,7 +484,6 @@ void ThreadState::threadLocalWeakProcessing() |
while (popAndInvokeThreadLocalWeakCallback(&weakProcessingVisitor)) { } |
if (isMainThread()) { |
- ScriptForbiddenScope::exit(); |
double timeForThreadLocalWeakProcessing = WTF::currentTimeMS() - startTime; |
Platform::current()->histogramCustomCounts("BlinkGC.timeForThreadLocalWeakProcessing", timeForThreadLocalWeakProcessing, 1, 10 * 1000, 50); |
} |
@@ -784,8 +782,7 @@ void ThreadState::performIdleLazySweep(double deadlineSeconds) |
SweepForbiddenScope scope(this); |
{ |
double startTime = WTF::currentTimeMS(); |
- if (isMainThread()) |
- ScriptForbiddenScope::enter(); |
+ ScriptForbiddenIfMainThreadScope scriptForbiddenScope; |
for (int i = 0; i < BlinkGC::NumberOfHeaps; i++) { |
// lazySweepWithDeadline() won't check the deadline until it sweeps |
@@ -801,8 +798,6 @@ void ThreadState::performIdleLazySweep(double deadlineSeconds) |
} |
} |
- if (isMainThread()) |
- ScriptForbiddenScope::exit(); |
accumulateSweepingTime(WTF::currentTimeMS() - startTime); |
} |
@@ -1075,17 +1070,11 @@ void ThreadState::eagerSweep() |
return; |
SweepForbiddenScope scope(this); |
- { |
- double startTime = WTF::currentTimeMS(); |
- if (isMainThread()) |
- ScriptForbiddenScope::enter(); |
+ ScriptForbiddenIfMainThreadScope scriptForbiddenScope; |
- m_heaps[BlinkGC::EagerSweepHeapIndex]->completeSweep(); |
- |
- if (isMainThread()) |
- ScriptForbiddenScope::exit(); |
- accumulateSweepingTime(WTF::currentTimeMS() - startTime); |
- } |
+ double startTime = WTF::currentTimeMS(); |
+ m_heaps[BlinkGC::EagerSweepHeapIndex]->completeSweep(); |
+ accumulateSweepingTime(WTF::currentTimeMS() - startTime); |
} |
void ThreadState::completeSweep() |
@@ -1103,8 +1092,7 @@ void ThreadState::completeSweep() |
SweepForbiddenScope scope(this); |
{ |
- if (isMainThread()) |
- ScriptForbiddenScope::enter(); |
+ ScriptForbiddenIfMainThreadScope scriptForbiddenScope; |
TRACE_EVENT0("blink_gc", "ThreadState::completeSweep"); |
double startTime = WTF::currentTimeMS(); |
@@ -1116,10 +1104,8 @@ void ThreadState::completeSweep() |
double timeForCompleteSweep = WTF::currentTimeMS() - startTime; |
accumulateSweepingTime(timeForCompleteSweep); |
- if (isMainThread()) { |
- ScriptForbiddenScope::exit(); |
+ if (isMainThread()) |
Platform::current()->histogramCustomCounts("BlinkGC.CompleteSweep", timeForCompleteSweep, 1, 10 * 1000, 50); |
- } |
} |
postSweep(); |
@@ -1340,8 +1326,8 @@ void ThreadState::invokePreFinalizers() |
TRACE_EVENT0("blink_gc", "ThreadState::invokePreFinalizers"); |
double startTime = WTF::currentTimeMS(); |
- if (isMainThread()) |
- ScriptForbiddenScope::enter(); |
+ |
+ ScriptForbiddenIfMainThreadScope scriptForbidden; |
SweepForbiddenScope forbiddenScope(this); |
Vector<PreFinalizer> deadPreFinalizers; |
@@ -1356,7 +1342,6 @@ void ThreadState::invokePreFinalizers() |
m_orderedPreFinalizers.removeAll(deadPreFinalizers); |
if (isMainThread()) { |
- ScriptForbiddenScope::exit(); |
double timeForInvokingPreFinalizers = WTF::currentTimeMS() - startTime; |
Platform::current()->histogramCustomCounts("BlinkGC.TimeForInvokingPreFinalizers", timeForInvokingPreFinalizers, 1, 10 * 1000, 50); |
} |