From f987d1859854db5c02235e63737cb51481ec5453 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Fri, 20 Jun 2025 01:55:58 -0700 Subject: [PATCH] Fix WASM workers. Worker was removing listener when stopped but was then deaf to main thread, so restore listener after posting its message back. Reduce WASM module iterations to get results more often from slower hardware. --- src/lib/generate/wasm/asm/generate.ts | 2 +- src/lib/generate/wasm/index.ts | 2 +- src/lib/generate/wasm/worker.ts | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/generate/wasm/asm/generate.ts b/src/lib/generate/wasm/asm/generate.ts index 7c34492..463b22a 100644 --- a/src/lib/generate/wasm/asm/generate.ts +++ b/src/lib/generate/wasm/asm/generate.ts @@ -153,7 +153,7 @@ console.log(`export function main (seed: u64, h0: u64, h1: u64, h2: u64, h3: u64 let r0: u64 = 0 let r1: u64 = 0 let result = v128.splat(0) - const iterations: u64 = 1 << 24 + const iterations: u64 = 1 << 20 for (let i: u64 = 0; i < iterations; i++) { m0 = i64x2(unchecked(seed + i), unchecked(seed + i + 1)) diff --git a/src/lib/generate/wasm/index.ts b/src/lib/generate/wasm/index.ts index 704d659..d9d99e8 100644 --- a/src/lib/generate/wasm/index.ts +++ b/src/lib/generate/wasm/index.ts @@ -74,7 +74,7 @@ async function dispatch (): Promise { return new Promise(resolve => { const attempts = [] for (let i = 0; i < workers.length; i++) { - data.seed = bigintToHex((bigintRandom() & ~((1n << 24n) - 1n)), 16) + data.seed = bigintToHex((bigintRandom() & ~((1n << 20n) - 1n)), 16) attempts.push(new Promise((found, err) => { const w = workers[i] w.onerror = err diff --git a/src/lib/generate/wasm/worker.ts b/src/lib/generate/wasm/worker.ts index 31e7997..2de0fce 100644 --- a/src/lib/generate/wasm/worker.ts +++ b/src/lib/generate/wasm/worker.ts @@ -72,6 +72,7 @@ const worker = async (compute: number[]): Promise => { } } finally { postMessage(result) + addEventListener('message', handleMessage) } } -- 2.47.3