diff --git a/src/solver/rollQueue.ts b/src/solver/rollQueue.ts index 5f28caf..2d8f8db 100644 --- a/src/solver/rollQueue.ts +++ b/src/solver/rollQueue.ts @@ -52,12 +52,14 @@ const handleRollWorker = async (rq: QueuedRoll) => { } }, config.limits.workerTimeout); - rollWorker.postMessage({ - rollCmd: rq.rollCmd, - modifiers: rq.modifiers, - }); - rollWorker.addEventListener('message', async (workerMessage) => { + if (workerMessage.data === 'ready') { + rollWorker.postMessage({ + rollCmd: rq.rollCmd, + modifiers: rq.modifiers, + }); + return; + } let apiErroredOut = false; try { currentWorkers--; diff --git a/src/solver/rollWorker.ts b/src/solver/rollWorker.ts index 66062b1..9be7dde 100644 --- a/src/solver/rollWorker.ts +++ b/src/solver/rollWorker.ts @@ -1,5 +1,9 @@ import { parseRoll } from './parser.ts'; +// Alert rollQueue that this worker is ready +self.postMessage('ready'); + +// Handle the roll self.onmessage = async (e: any) => { const payload = e.data; const returnmsg = parseRoll(payload.rollCmd, payload.modifiers) || {