-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Open
Labels
Description
Version: deno 2.4.0
Deno's node:worker_threads implementation does not currently fire 'exit'.
import { setTimeout } from "node:timers/promises";
async function workerFun() {
await setTimeout(1000);
console.log("I'm done");
process.exit(0);
}
import { Worker as NodeWorker, isMainThread } from "node:worker_threads";
if (isMainThread) {
console.log("Starting a worker");
const worker = new NodeWorker(new URL(import.meta.url));
worker.on('exit', (code) => {
console.log(`Worker exited with code ${code}`);
});
// Bun needs a little more time to call the exit handler
await setTimeout(2000);
} else {
await workerFun();
}$ deno run -A src/deno_no_worker_exit.ts
Starting a worker
I'm done
$ deno -v
deno 2.4.0
$ node --import jiti/register src/deno_no_worker_exit.ts
Starting a worker
I'm done
Worker exited with code 0
$ node -v
v24.3.0
$ bun run src/deno_no_worker_exit.ts
Starting a worker
I'm done
Worker exited with code 0
$ bun -v
1.2.18