mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-08 00:07:30 +09:00
Issue #1442 - Part 12a - Allow idle worker shutdown to begin for an opt-in WorkerHolder mode. https://bugzilla.mozilla.org/show_bug.cgi?id=1362444 Pre-requisite for Part 13.
This commit is contained in:
parent
346e8a87d7
commit
41216b88f6
4 changed files with 30 additions and 6 deletions
|
|
@ -4154,6 +4154,7 @@ WorkerPrivate::WorkerPrivate(WorkerPrivate* aParent,
|
|||
, mDebugger(nullptr)
|
||||
, mJSContext(nullptr)
|
||||
, mPRThread(nullptr)
|
||||
, mNumHoldersPreventingShutdownStart(0)
|
||||
, mDebuggerEventLoopLevel(0)
|
||||
, mMainThreadEventTarget(do_GetMainThread())
|
||||
, mErrorHandlerRecursionCount(0)
|
||||
|
|
@ -5382,8 +5383,11 @@ WorkerPrivate::AddHolder(WorkerHolder* aHolder, Status aFailStatus)
|
|||
|
||||
MOZ_ASSERT(!mHolders.Contains(aHolder), "Already know about this one!");
|
||||
|
||||
if (mHolders.IsEmpty() && !ModifyBusyCountFromWorker(true)) {
|
||||
return false;
|
||||
if (aHolder->GetBehavior() == WorkerHolder::PreventIdleShutdownStart) {
|
||||
if (!mNumHoldersPreventingShutdownStart && !ModifyBusyCountFromWorker(true)) {
|
||||
return false;
|
||||
}
|
||||
mNumHoldersPreventingShutdownStart += 1;
|
||||
}
|
||||
|
||||
mHolders.AppendElement(aHolder);
|
||||
|
|
@ -5398,8 +5402,11 @@ WorkerPrivate::RemoveHolder(WorkerHolder* aHolder)
|
|||
MOZ_ASSERT(mHolders.Contains(aHolder), "Didn't know about this one!");
|
||||
mHolders.RemoveElement(aHolder);
|
||||
|
||||
if (mHolders.IsEmpty() && !ModifyBusyCountFromWorker(false)) {
|
||||
NS_WARNING("Failed to modify busy count!");
|
||||
if (aHolder->GetBehavior() == WorkerHolder::PreventIdleShutdownStart) {
|
||||
mNumHoldersPreventingShutdownStart -= 1;
|
||||
if (!mNumHoldersPreventingShutdownStart && !ModifyBusyCountFromWorker(false)) {
|
||||
NS_WARNING("Failed to modify busy count!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue