Backed out changeset 6eca5587da3e (bug 1340537) on request from jonco
authorCarsten "Tomcat" Book <cbook@mozilla.com>
Mon, 20 Feb 2017 14:15:17 +0100
changeset 372923 be761d783526b43f4a1c3525e4dd7d54f3512d85
parent 372922 55cdebd1726441794acdd5d5f3d40d4d04c6cbaa
child 372924 59e30ba1b38fafefaf72865e43a9e3e969db6da5
push id10863
push userjlorenzo@mozilla.com
push dateMon, 06 Mar 2017 23:02:23 +0000
treeherdermozilla-aurora@0931190cd725 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1340537
milestone54.0a1
backs out6eca5587da3e7ce4419e39fbb1effd76643126c9
Backed out changeset 6eca5587da3e (bug 1340537) on request from jonco
js/src/vm/HelperThreads.cpp
--- a/js/src/vm/HelperThreads.cpp
+++ b/js/src/vm/HelperThreads.cpp
@@ -347,20 +347,16 @@ ParseTask::~ParseTask()
         js_delete(errors[i]);
 }
 
 void
 ParseTask::trace(JSTracer* trc)
 {
     if (parseGlobal->runtimeFromAnyThread() != trc->runtime())
         return;
-    if (parseGlobal->zoneFromAnyThread()->usedByHelperThread()) {
-        MOZ_ASSERT(!parseGlobal->zoneFromAnyThread()->isCollecting());
-        return;
-    }
 
     TraceManuallyBarrieredEdge(trc, &parseGlobal, "ParseTask::parseGlobal");
     if (script)
         TraceManuallyBarrieredEdge(trc, &script, "ParseTask::script");
     if (sourceObject)
         TraceManuallyBarrieredEdge(trc, &sourceObject, "ParseTask::sourceObject");
 }
 
@@ -1228,17 +1224,17 @@ HelperThread::handleGCParallelWorkload(A
     gcParallelTask()->runFromHelperThread(locked);
     currentTask.reset();
     HelperThreadState().notifyAll(GlobalHelperThreadState::CONSUMER, locked);
 }
 
 static void
 LeaveParseTaskZone(JSRuntime* rt, ParseTask* task)
 {
-    // Mark the zone as no longer in use by a helper thread, and available
+    // Mark the zone as no longer in use by an JSContext, and available
     // to be collected by the GC.
     rt->clearUsedByHelperThread(task->parseGlobal->zone());
 }
 
 ParseTask*
 GlobalHelperThreadState::removeFinishedParseTask(ParseTaskKind kind, void* token)
 {
     // The token is a ParseTask* which should be in the finished list.