30 lines
703 B
JavaScript
30 lines
703 B
JavaScript
'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();
|