зеркало из https://github.com/mozilla/gecko-dev.git
cb268d10f4
It looks like there could be a race condition where GetTerminationPromise() is called at the same time on two threads on an empty MozPromiseHolder, and one of the MozPromises created by MozPromiseHolder::Ensure if leaked (and its chained callbacks never called). Additionally, I don't think the ParentStatusProtected() > Running check is necessary because for ServiceWorkers, the global can't call close(), so the parent status is at least "Canceling", making the CloseWorkerOnMainThread call unnecessary (which just calls WorkerPrivate::Cancel). The parent process also will always send a termination operation as the last operation, so we can just rely on that to make sure the worker is fully terminated. Differential Revision: https://phabricator.services.mozilla.com/D56277 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
PRemoteWorker.ipdl | ||
PRemoteWorkerController.ipdl | ||
PRemoteWorkerService.ipdl | ||
RemoteWorkerChild.cpp | ||
RemoteWorkerChild.h | ||
RemoteWorkerController.cpp | ||
RemoteWorkerController.h | ||
RemoteWorkerControllerChild.cpp | ||
RemoteWorkerControllerChild.h | ||
RemoteWorkerControllerParent.cpp | ||
RemoteWorkerControllerParent.h | ||
RemoteWorkerManager.cpp | ||
RemoteWorkerManager.h | ||
RemoteWorkerParent.cpp | ||
RemoteWorkerParent.h | ||
RemoteWorkerService.cpp | ||
RemoteWorkerService.h | ||
RemoteWorkerServiceChild.cpp | ||
RemoteWorkerServiceChild.h | ||
RemoteWorkerServiceParent.cpp | ||
RemoteWorkerServiceParent.h | ||
RemoteWorkerTypes.ipdlh | ||
moz.build |