mirror of
https://github.com/Burn-E99/TheArtificer.git
synced 2026-01-04 19:47:54 -05:00
Fix a weird race condition where the worker wouldn't be ready when it needed to be
This commit is contained in:
@ -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--;
|
||||
|
||||
@ -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) || {
|
||||
|
||||
Reference in New Issue
Block a user