diff options
Diffstat (limited to 'tests/testdata')
-rw-r--r-- | tests/testdata/workers/node_worker_message_port_unref.mjs | 40 | ||||
-rw-r--r-- | tests/testdata/workers/node_worker_message_port_unref.mjs.out | 2 |
2 files changed, 42 insertions, 0 deletions
diff --git a/tests/testdata/workers/node_worker_message_port_unref.mjs b/tests/testdata/workers/node_worker_message_port_unref.mjs new file mode 100644 index 000000000..a12be1ec8 --- /dev/null +++ b/tests/testdata/workers/node_worker_message_port_unref.mjs @@ -0,0 +1,40 @@ +import { + isMainThread, + MessageChannel, + parentPort, + Worker, + workerData, +} from "node:worker_threads"; + +const useParentPort = Deno.env.get("PARENT_PORT") === "1"; + +if (useParentPort) { + if (isMainThread) { + const worker = new Worker(import.meta.filename); + worker.postMessage("main says hi!"); + worker.on("message", (msg) => console.log(msg)); + } else { + parentPort.on("message", (msg) => { + console.log(msg); + parentPort.postMessage("worker says hi!"); + parentPort.unref(); + }); + } +} else { + if (isMainThread) { + const { port1, port2 } = new MessageChannel(); + const worker = new Worker(import.meta.filename, { + workerData: port2, + transferList: [port2], + }); + port1.postMessage("main says hi!"); + port1.on("message", (msg) => console.log(msg)); + } else { + const port = workerData; + port.on("message", (msg) => { + console.log(msg); + port.postMessage("worker says hi!"); + port.unref(); + }); + } +} diff --git a/tests/testdata/workers/node_worker_message_port_unref.mjs.out b/tests/testdata/workers/node_worker_message_port_unref.mjs.out new file mode 100644 index 000000000..c9d5325bc --- /dev/null +++ b/tests/testdata/workers/node_worker_message_port_unref.mjs.out @@ -0,0 +1,2 @@ +main says hi! +worker says hi! |