Skip to content

Commit 6b851de

Browse files
authored
Don't listen wasm_bindgen_worker_init on main thread (#30)
1 parent 7bf90d3 commit 6b851de

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

src/workerHelpers.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@ function waitForMsgType(target, type) {
3939
// and temporary bugs so that you don't need to deal with them in your code.
4040
import { initSync, wbg_rayon_start_worker } from '../../..';
4141

42-
waitForMsgType(self, 'wasm_bindgen_worker_init').then(async data => {
43-
initSync(data.init);
44-
postMessage({ type: 'wasm_bindgen_worker_ready' });
45-
wbg_rayon_start_worker(data.receiver);
46-
});
42+
if (name === "wasm_bindgen_worker") {
43+
waitForMsgType(self, 'wasm_bindgen_worker_init').then(async data => {
44+
initSync(data.init);
45+
postMessage({ type: 'wasm_bindgen_worker_ready' });
46+
wbg_rayon_start_worker(data.receiver);
47+
});
48+
}
4749

4850
export async function startWorkers(module, memory, builder) {
4951
const workerInit = {
@@ -70,7 +72,8 @@ export async function startWorkers(module, memory, builder) {
7072
import.meta.url
7173
),
7274
{
73-
type: 'module'
75+
type: 'module',
76+
name: 'wasm_bindgen_worker'
7477
}
7578
);
7679
worker.postMessage(workerInit);

src/workerHelpers.no-bundler.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@ function waitForMsgType(target, type) {
2727
// We need to wait for a specific message because this file is used both
2828
// as a Worker and as a regular script, so it might receive unrelated
2929
// messages on the page.
30-
waitForMsgType(self, 'wasm_bindgen_worker_init').then(async data => {
31-
const pkg = await import(data.mainJS);
32-
await pkg.initSync(data.init);
33-
postMessage({ type: 'wasm_bindgen_worker_ready' });
34-
pkg.wbg_rayon_start_worker(data.receiver);
35-
});
30+
if (name === "wasm_bindgen_worker") {
31+
waitForMsgType(self, 'wasm_bindgen_worker_init').then(async data => {
32+
const pkg = await import(data.mainJS);
33+
await pkg.initSync(data.init);
34+
postMessage({ type: 'wasm_bindgen_worker_ready' });
35+
pkg.wbg_rayon_start_worker(data.receiver);
36+
});
37+
}
3638

3739
export async function startWorkers(module, memory, builder) {
3840
const workerInit = {
@@ -51,7 +53,8 @@ export async function startWorkers(module, memory, builder) {
5153
let scriptBlob = await fetch(import.meta.url).then(r => r.blob());
5254
let url = URL.createObjectURL(scriptBlob);
5355
const worker = new Worker(url, {
54-
type: 'module'
56+
type: 'module',
57+
name: 'wasm_bindgen_worker'
5558
});
5659
worker.postMessage(workerInit);
5760
await waitForMsgType(worker, 'wasm_bindgen_worker_ready');

0 commit comments

Comments
 (0)