Backed out changeset 592350649c0f (bug 1522246) for browser_test_performance_metrics.js failures CLOSED TREE
authorBogdan Tara <btara@mozilla.com>
Wed, 27 Feb 2019 02:50:41 +0200
changeset 519269 2ef9c49c8f27efbf837a8a027cc395493d863f85
parent 519268 bf486c5f798baff9c7f8fb09882159584917a0ef
child 519270 f07eec8b4f2c820d2f1f15c0976f77cd0f7d9321
push id10862
push userffxbld-merge
push dateMon, 11 Mar 2019 13:01:11 +0000
treeherdermozilla-beta@a2e7f5c935da [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1522246
milestone67.0a1
backs out592350649c0fed65fde5d9056c0c550bb4f2af90
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Backed out changeset 592350649c0f (bug 1522246) for browser_test_performance_metrics.js failures CLOSED TREE
dom/workers/WorkerPrivate.cpp
--- a/dom/workers/WorkerPrivate.cpp
+++ b/dom/workers/WorkerPrivate.cpp
@@ -2567,25 +2567,19 @@ void WorkerPrivate::DoRunLoop(JSContext*
   for (;;) {
     WorkerStatus currentStatus;
     bool debuggerRunnablesPending = false;
     bool normalRunnablesPending = false;
 
     {
       MutexAutoLock lock(mMutex);
 
-      // Wait for a runnable to arrive that we can execute, or for it to be okay
-      // to shutdown this worker once all holders have been removed.
-      // Holders may be removed from inside normal runnables, but we don't check
-      // for that after processing normal runnables, so we need to let control
-      // flow to the shutdown logic without blocking.
       while (mControlQueue.IsEmpty() &&
              !(debuggerRunnablesPending = !mDebuggerQueue.IsEmpty()) &&
-             !(normalRunnablesPending = NS_HasPendingEvents(mThread)) &&
-             !(mStatus != Running && !HasActiveHolders())) {
+             !(normalRunnablesPending = NS_HasPendingEvents(mThread))) {
         WaitForWorkerEvents();
       }
 
       auto result = ProcessAllControlRunnablesLocked();
       if (result != ProcessAllControlRunnablesResult::Nothing) {
         // NB: There's no JS on the stack here, so Abort vs MayContinue is
         // irrelevant