From bbc211906dcd5043af549250343cd7b42fb45043 Mon Sep 17 00:00:00 2001 From: Satya Rohith Date: Thu, 14 Mar 2024 01:22:53 +0530 Subject: fix(ext/node): make worker ids sequential (#22884) --- .../testdata/workers/worker_ids_are_sequential.ts | 34 ++++++++++++++++++++++ .../workers/worker_ids_are_sequential.ts.out | 4 +++ 2 files changed, 38 insertions(+) create mode 100644 tests/testdata/workers/worker_ids_are_sequential.ts create mode 100644 tests/testdata/workers/worker_ids_are_sequential.ts.out (limited to 'tests/testdata') diff --git a/tests/testdata/workers/worker_ids_are_sequential.ts b/tests/testdata/workers/worker_ids_are_sequential.ts new file mode 100644 index 000000000..eb90f0d47 --- /dev/null +++ b/tests/testdata/workers/worker_ids_are_sequential.ts @@ -0,0 +1,34 @@ +import { + isMainThread, + parentPort, + threadId, + Worker, +} from "node:worker_threads"; + +console.log("threadId", threadId); + +if (isMainThread) { + const worker = new Worker(new URL(import.meta.url)); + worker.on("message", (msg) => console.log("from worker:", msg)); + worker.on("error", () => { + throw new Error("error"); + }); + worker.on("exit", (code) => { + if (code !== 0) { + reject(new Error(`Worker stopped with exit code ${code}`)); + } + }); +} else if (threadId == 1) { + const worker = new Worker(new URL(import.meta.url)); + worker.on("message", (msg) => console.log("from worker:", msg)); + worker.on("error", () => { + throw new Error("error"); + }); + worker.on("exit", (code) => { + if (code !== 0) { + reject(new Error(`Worker stopped with exit code ${code}`)); + } + }); +} else { + parentPort.postMessage("hello!"); +} diff --git a/tests/testdata/workers/worker_ids_are_sequential.ts.out b/tests/testdata/workers/worker_ids_are_sequential.ts.out new file mode 100644 index 000000000..1f0552864 --- /dev/null +++ b/tests/testdata/workers/worker_ids_are_sequential.ts.out @@ -0,0 +1,4 @@ +threadId 0 +threadId 1 +threadId 2 +from worker: hello! -- cgit v1.2.3