From f04b8c23517f30ce1f1a1bf63b17df143d31f2ca Mon Sep 17 00:00:00 2001 From: Filip Lundgren Date: Thu, 12 Sep 2024 17:02:23 -0700 Subject: [PATCH] Support preallocated pthread & wasm worker from blob --- src/library_pthread.js | 18 ++++++++++++++---- src/library_wasm_worker.js | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/library_pthread.js b/src/library_pthread.js index 680a6ac9dd31..7363e4253d6e 100644 --- a/src/library_pthread.js +++ b/src/library_pthread.js @@ -98,10 +98,20 @@ var LibraryPThread = { }, initMainThread() { #if PTHREAD_POOL_SIZE - var pthreadPoolSize = {{{ PTHREAD_POOL_SIZE }}}; - // Start loading up the Worker pool, if requested. - while (pthreadPoolSize--) { - PThread.allocateUnusedWorker(); + preallocateWorkers = () => { + var pthreadPoolSize = {{{ PTHREAD_POOL_SIZE }}}; + // Start loading up the Worker pool, if requested. + while (pthreadPoolSize--) { + PThread.allocateUnusedWorker(); + } + }; +#if expectToReceiveOnModule('mainScriptUrlOrBlobPromise') + if (Module['mainScriptUrlOrBlobPromise']) { + Module['mainScriptUrlOrBlobPromise'].then(preallocateWorkers); + } else +#endif + { + preallocateWorkers(); } #endif #if !MINIMAL_RUNTIME diff --git a/src/library_wasm_worker.js b/src/library_wasm_worker.js index ec50bdb1f8df..5756e3f77536 100644 --- a/src/library_wasm_worker.js +++ b/src/library_wasm_worker.js @@ -182,7 +182,7 @@ if (ENVIRONMENT_IS_WASM_WORKER 'mem': wasmMemory, #else 'wasm': wasmModule, - 'js': Module['mainScriptUrlOrBlob'] || _scriptName, + 'js': URL.createObjectURL(Module["mainScriptUrlOrBlob"]) || _scriptName, 'wasmMemory': wasmMemory, #endif 'sb': stackLowestAddress, // sb = stack bottom (lowest stack address, SP points at this when stack is full)