diff options
author | Satya Rohith <me@satyarohith.com> | 2024-05-03 11:22:47 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-03 05:52:47 +0000 |
commit | 02d0ff58d2bab24ebbd1e61afe6b571ff4c415af (patch) | |
tree | 78b7fa4e7cf0265d688e34ddaa422ec344273e06 /tests/specs/node/worker_threads/message_port_unref.mjs | |
parent | 3e98ea4e69732d8a659ca0ca61747fe3887ab673 (diff) |
refactor(tests): move worker_threads itests to spec tests (#23648)
Diffstat (limited to 'tests/specs/node/worker_threads/message_port_unref.mjs')
-rw-r--r-- | tests/specs/node/worker_threads/message_port_unref.mjs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/specs/node/worker_threads/message_port_unref.mjs b/tests/specs/node/worker_threads/message_port_unref.mjs new file mode 100644 index 000000000..a12be1ec8 --- /dev/null +++ b/tests/specs/node/worker_threads/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(); + }); + } +} |