diff --git a/src/js/core/compression.ts b/src/js/core/compression.ts index cb43daa5..e131332b 100644 --- a/src/js/core/compression.ts +++ b/src/js/core/compression.ts @@ -23,6 +23,7 @@ export class DefaultCompression implements Compression { resolve(response.result); }); + this.scheduleWorkerTermination(worker); worker.postMessage(data); return promise; } @@ -43,7 +44,13 @@ export class DefaultCompression implements Compression { resolve(response.result); }); + this.scheduleWorkerTermination(worker); worker.postMessage(data, [data.buffer]); return promise; } + + private scheduleWorkerTermination(worker: Worker): void { + worker.addEventListener("message", () => worker.terminate(), { once: true }); + worker.addEventListener("error", () => worker.terminate(), { once: true }); + } }