deno/cli/tests/no_mem_cache.js
Bartek Iwańczuk 22f951aa67
fix: panic in worker when closing at top level (#8510)
Fixes panic occurring in worker when "self.close()" is called
at the top level, ie. worker shuts down while
module evaluation promise hasn't yet resolved.
2020-11-27 14:19:24 +01:00

34 lines
762 B
JavaScript

const fixtureFile = await Deno.makeTempFile();
let prefix = "file://";
if (Deno.build.os == "windows") {
prefix += "/";
}
const fixtureUrl = new URL(`${prefix}${fixtureFile}`);
let resolve;
let p = new Promise((res) => resolve = res);
await Deno.writeTextFile(fixtureUrl, `self.postMessage("hello");\n`);
const workerA = new Worker(fixtureUrl.href, { type: "module" });
workerA.onmessage = (msg) => {
console.log(msg.data);
resolve();
};
await p;
workerA.terminate();
p = new Promise((res) => resolve = res);
await Deno.writeTextFile(fixtureUrl, `self.postMessage("goodbye");\n`);
const workerB = new Worker(fixtureUrl.href, { type: "module" });
workerB.onmessage = (msg) => {
console.log(msg.data);
resolve();
};
await p;
workerB.terminate();