'use strict'; const common = require('../common'); const { Worker } = require('worker_threads'); // Test that calling worker.unref() leads to 'beforeExit' being emitted, and // that we can resurrect the worker using worker.ref() from there. const w = new Worker(` const { parentPort } = require('worker_threads'); parentPort.once('message', (msg) => { parentPort.postMessage(msg); }); `, { eval: true }); process.once('beforeExit', common.mustCall(() => { console.log('beforeExit'); w.ref(); w.postMessage({ hello: 'world' }); })); w.once('message', common.mustCall((msg) => { console.log('message', msg); })); w.on('exit', common.mustCall(() => { console.log('exit'); })); w.unref();