mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-08 00:07:30 +09:00
Send worker-runnables destined for the main thread actually to the main thread.
A case of "one queue too many" here. Instead of worker runnables being sent to the main thread where they are supposed to run, they are put in a task queue per-worker. This is devastating for performance if many workers are running.
This commit is contained in:
parent
73b9f505a1
commit
5a03a408a8
2 changed files with 18 additions and 9 deletions
|
|
@ -404,7 +404,7 @@ private:
|
|||
|
||||
RefPtr<MainThreadReleaseRunnable> runnable =
|
||||
new MainThreadReleaseRunnable(doomed, loadGroupToCancel);
|
||||
if (NS_FAILED(mWorkerPrivate->DispatchToMainThread(runnable.forget()))) {
|
||||
if (NS_FAILED(NS_DispatchToMainThread(runnable))) {
|
||||
NS_WARNING("Failed to dispatch, going to leak!");
|
||||
}
|
||||
|
||||
|
|
@ -4078,7 +4078,7 @@ WorkerDebugger::PostMessageToDebugger(const nsAString& aMessage)
|
|||
|
||||
RefPtr<PostDebuggerMessageRunnable> runnable =
|
||||
new PostDebuggerMessageRunnable(this, aMessage);
|
||||
if (NS_FAILED(mWorkerPrivate->DispatchToMainThread(runnable.forget()))) {
|
||||
if (NS_FAILED(NS_DispatchToMainThread(runnable, NS_DISPATCH_NORMAL))) {
|
||||
NS_WARNING("Failed to post message to debugger on main thread!");
|
||||
}
|
||||
}
|
||||
|
|
@ -4103,7 +4103,7 @@ WorkerDebugger::ReportErrorToDebugger(const nsAString& aFilename,
|
|||
|
||||
RefPtr<ReportDebuggerErrorRunnable> runnable =
|
||||
new ReportDebuggerErrorRunnable(this, aFilename, aLineno, aMessage);
|
||||
if (NS_FAILED(mWorkerPrivate->DispatchToMainThread(runnable.forget()))) {
|
||||
if (NS_FAILED(NS_DispatchToMainThread(runnable, NS_DISPATCH_NORMAL))) {
|
||||
NS_WARNING("Failed to report error to debugger on main thread!");
|
||||
}
|
||||
}
|
||||
|
|
@ -4862,7 +4862,7 @@ WorkerPrivate::MaybeDispatchLoadFailedRunnable()
|
|||
return;
|
||||
}
|
||||
|
||||
MOZ_ALWAYS_SUCCEEDS(DispatchToMainThread(runnable.forget()));
|
||||
MOZ_ALWAYS_SUCCEEDS(NS_DispatchToMainThread(runnable.forget()));
|
||||
}
|
||||
|
||||
nsIEventTarget*
|
||||
|
|
@ -5083,7 +5083,7 @@ WorkerPrivate::ScheduleDeletion(WorkerRanOrNot aRanOrNot)
|
|||
else {
|
||||
RefPtr<TopLevelWorkerFinishedRunnable> runnable =
|
||||
new TopLevelWorkerFinishedRunnable(this);
|
||||
if (NS_FAILED(DispatchToMainThread(runnable.forget()))) {
|
||||
if (NS_FAILED(NS_DispatchToMainThread(runnable))) {
|
||||
NS_WARNING("Failed to dispatch runnable!");
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue