From: Chris Duncan Date: Fri, 1 Aug 2025 14:37:01 +0000 (-0700) Subject: Throw from worker if terminated. X-Git-Tag: v0.10.5~47^2~31 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=ebf2ee870114191e17254fe276b6be0898458e6d;p=libnemo.git Throw from worker if terminated. --- diff --git a/src/lib/worker-queue.ts b/src/lib/worker-queue.ts index 6fe2bc6..e2de7eb 100644 --- a/src/lib/worker-queue.ts +++ b/src/lib/worker-queue.ts @@ -20,6 +20,7 @@ export class WorkerQueue { #job?: Task #isIdle: boolean + #isTerminated: boolean #queue: Task[] = [] #url: string #worker: Worker | NodeWorker @@ -32,6 +33,7 @@ export class WorkerQueue { */ constructor (worker: string) { this.#isIdle = true + this.#isTerminated = false this.#queue = [] this.#url = URL.createObjectURL(new Blob([worker], { type: 'text/javascript' })) BROWSER: this.#worker = new Worker(this.#url, { type: 'module' }) @@ -60,10 +62,14 @@ export class WorkerQueue { terminate (): void { this.#job = undefined this.#worker.terminate() + this.#isTerminated = true } async #assign (data: NamedData, enqueue: (task: Task) => number): Promise> { return new Promise(async (resolve, reject): Promise => { + if (this.#isTerminated) { + reject('Worker terminated') + } const task: Task = { id: performance.now(), data,