summaryrefslogtreecommitdiff
path: root/tests/testdata/workers/node_worker_auto_exits.mjs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2024-03-15 20:38:16 +0000
committerGitHub <noreply@github.com>2024-03-15 21:38:16 +0100
commitc342cd36ba1af12d005167369d3a2f508496ef5d (patch)
treef875512a283166eae46dfddf5ca26f29c482499e /tests/testdata/workers/node_worker_auto_exits.mjs
parente40f9a5c14c51b6d05812e48fa072148fe79c74d (diff)
fix(ext/node): worker_threads doesn't exit if there are message listeners (#22944)
Closes https://github.com/denoland/deno/issues/22934
Diffstat (limited to 'tests/testdata/workers/node_worker_auto_exits.mjs')
-rw-r--r--tests/testdata/workers/node_worker_auto_exits.mjs12
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/testdata/workers/node_worker_auto_exits.mjs b/tests/testdata/workers/node_worker_auto_exits.mjs
index abfb084c3..e434f59f7 100644
--- a/tests/testdata/workers/node_worker_auto_exits.mjs
+++ b/tests/testdata/workers/node_worker_auto_exits.mjs
@@ -1,9 +1,19 @@
-import { isMainThread, Worker } from "node:worker_threads";
+import { isMainThread, parentPort, Worker } from "node:worker_threads";
+
+function onMessageOneshot() {
+ console.log("Got message from main thread!");
+ parentPort.off("message", onMessageOneshot);
+}
if (isMainThread) {
// This re-loads the current file inside a Worker instance.
const w = new Worker(import.meta.filename);
+
+ setTimeout(() => {
+ w.postMessage("Hello! I am from the main thread.");
+ }, 500);
} else {
console.log("Inside Worker!");
console.log(isMainThread); // Prints 'false'.
+ parentPort.on("message", onMessageOneshot);
}