diff --git a/demo/demo.js b/demo/demo.js index 8aa65269..f472757c 100644 --- a/demo/demo.js +++ b/demo/demo.js @@ -418,6 +418,7 @@ const onReady = async ( }, )), ); + writer.write( ...(await penumbra.get( { diff --git a/package.json b/package.json index a6627eff..b03bcdb0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@transcend-io/penumbra", - "version": "5.3.2", + "version": "5.3.3", "description": "Crypto streams for the browser.", "main": "dist/main.penumbra.js", "types": "ts-build/src/index.d.ts", diff --git a/src/workers.ts b/src/workers.ts index aa998eb3..f7296bc0 100644 --- a/src/workers.ts +++ b/src/workers.ts @@ -172,6 +172,10 @@ const onWorkerInitQueue: (() => void)[] = []; * @returns Worker */ function getFreeWorker(): PenumbraWorker { + if (workers.length === 0) { + throw new Error('No Penumbra workers available.'); + } + // Poll for any available free workers const freeWorker = workers.find(({ busy }) => !busy); @@ -233,21 +237,11 @@ export async function getWorker(): Promise { } return getFreeWorker(); } - -/** - * Returns all active Penumbra Workers - * - * @returns Workers - */ -function getActiveWorkers(): PenumbraWorker[] { - return workers; -} - /** * Terminate Penumbra worker and de-allocate their resources */ function cleanup(): void { - getActiveWorkers().forEach((thread) => { + workers.forEach((thread) => { thread.worker.terminate(); }); workers.length = 0; @@ -285,7 +279,6 @@ export async function setWorkerLocation( if (initialized) { logger.warn('Penumbra Workers are already active. Reinitializing...'); await cleanup(); - return; } settings.workers = JSON.stringify( typeof options === 'string'