Skip to content

Commit d8f8be9

Browse files
Prevent awaiting promise that never resolves (#74243)
Co-authored-by: Simon Rozsival <simon@rozsival.com>
1 parent 5477d65 commit d8f8be9

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

  • src/mono/wasm/runtime/pthreads/browser

src/mono/wasm/runtime/pthreads/browser/index.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,14 @@ export function preAllocatePThreadWorkerPool(defaultPthreadPoolSize: number, con
135135
export async function instantiateWasmPThreadWorkerPool(): Promise<void> {
136136
// this is largely copied from emscripten's "receiveInstance" in "createWasm" in "src/preamble.js"
137137
const workers = Internals.getUnusedWorkerPool();
138-
const allLoaded = createPromiseController<void>();
139-
let leftToLoad = workers.length;
140-
workers.forEach((w) => {
141-
Internals.loadWasmModuleToWorker(w, function () {
142-
if (!--leftToLoad) allLoaded.promise_control.resolve();
138+
if (workers.length > 0) {
139+
const allLoaded = createPromiseController<void>();
140+
let leftToLoad = workers.length;
141+
workers.forEach((w) => {
142+
Internals.loadWasmModuleToWorker(w, function () {
143+
if (!--leftToLoad) allLoaded.promise_control.resolve();
144+
});
143145
});
144-
});
145-
await allLoaded.promise;
146+
await allLoaded.promise;
147+
}
146148
}

0 commit comments

Comments
 (0)