mirror of
https://github.com/Burn-E99/TheArtificer.git
synced 2026-01-06 20:37: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);
|
}, config.limits.workerTimeout);
|
||||||
|
|
||||||
rollWorker.postMessage({
|
|
||||||
rollCmd: rq.rollCmd,
|
|
||||||
modifiers: rq.modifiers,
|
|
||||||
});
|
|
||||||
|
|
||||||
rollWorker.addEventListener('message', async (workerMessage) => {
|
rollWorker.addEventListener('message', async (workerMessage) => {
|
||||||
|
if (workerMessage.data === 'ready') {
|
||||||
|
rollWorker.postMessage({
|
||||||
|
rollCmd: rq.rollCmd,
|
||||||
|
modifiers: rq.modifiers,
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
let apiErroredOut = false;
|
let apiErroredOut = false;
|
||||||
try {
|
try {
|
||||||
currentWorkers--;
|
currentWorkers--;
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
import { parseRoll } from './parser.ts';
|
import { parseRoll } from './parser.ts';
|
||||||
|
|
||||||
|
// Alert rollQueue that this worker is ready
|
||||||
|
self.postMessage('ready');
|
||||||
|
|
||||||
|
// Handle the roll
|
||||||
self.onmessage = async (e: any) => {
|
self.onmessage = async (e: any) => {
|
||||||
const payload = e.data;
|
const payload = e.data;
|
||||||
const returnmsg = parseRoll(payload.rollCmd, payload.modifiers) || {
|
const returnmsg = parseRoll(payload.rollCmd, payload.modifiers) || {
|
||||||
|
|||||||
Reference in New Issue
Block a user