]> git.codecow.com Git - nano-pow.git/commitdiff
Fix WASM workers.
authorChris Duncan <chris@zoso.dev>
Fri, 20 Jun 2025 08:55:58 +0000 (01:55 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 20 Jun 2025 08:55:58 +0000 (01:55 -0700)
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
src/lib/generate/wasm/index.ts
src/lib/generate/wasm/worker.ts

index 7c3449201bfc96d24f3b35ded42d0c18c57d22f9..463b22a76031ab25ed2e1c91cc3df0a019a3777a 100644 (file)
@@ -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<u64>(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))
index 704d659cdd8bf973d1d01ccb50c506a31aeaecd5..d9d99e8d5f3a3d21e68423c997009955dbe92903 100644 (file)
@@ -74,7 +74,7 @@ async function dispatch (): Promise<bigint> {
        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
index 31e7997406ca53ae20127f058fc720fbbac0f2e0..2de0fce17ac1c7fdadc0cc143203ca26def1f462 100644 (file)
@@ -72,6 +72,7 @@ const worker = async (compute: number[]): Promise<void> => {
                        }
                } finally {
                        postMessage(result)
+                       addEventListener('message', handleMessage)
                }
        }