| 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 3f25749d8cdadd8a788234cfe1df540abd0ed44b..31246687fecd55c64ac87964555420a16547ef39 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();
|
| -
|
| - m_heaps[BlinkGC::EagerSweepHeapIndex]->completeSweep();
|
| + ScriptForbiddenIfMainThreadScope scriptForbiddenScope;
|
|
|
| - 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();
|
| @@ -1341,9 +1327,8 @@ void ThreadState::invokePreFinalizers()
|
|
|
| double startTime = WTF::currentTimeMS();
|
| if (!m_orderedPreFinalizers.isEmpty()) {
|
| - SweepForbiddenScope forbiddenScope(this);
|
| - if (isMainThread())
|
| - ScriptForbiddenScope::enter();
|
| + SweepForbiddenScope sweepForbidden(this);
|
| + ScriptForbiddenIfMainThreadScope scriptForbidden;
|
|
|
| // Call the prefinalizers in the opposite order to their registration.
|
| //
|
| @@ -1361,9 +1346,6 @@ void ThreadState::invokePreFinalizers()
|
| if ((entry->second)(entry->first))
|
| m_orderedPreFinalizers.remove(entry);
|
| } while (!done);
|
| -
|
| - if (isMainThread())
|
| - ScriptForbiddenScope::exit();
|
| }
|
| if (isMainThread()) {
|
| double timeForInvokingPreFinalizers = WTF::currentTimeMS() - startTime;
|
|
|