mirror of
https://github.com/nodejs/node.git
synced 2025-05-01 08:42:45 +00:00

Once `worker.terminate()` is called, the Worker instance will be destroyed as soon as possible anyway, so in order to make the Promise returned by `worker.terminate()` resolve always, it should be okay to just call `.ref()` on it and keep the main event loop alive temporarily. PR-URL: https://github.com/nodejs/node/pull/29484 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
17 lines
466 B
JavaScript
17 lines
466 B
JavaScript
'use strict';
|
||
const common = require('../common');
|
||
const { once } = require('events');
|
||
const { Worker } = require('worker_threads');
|
||
|
||
// Test that calling worker.terminate() on an unref()’ed Worker instance
|
||
// still resolves the returned Promise.
|
||
|
||
async function test() {
|
||
const worker = new Worker('setTimeout(() => {}, 1000000);', { eval: true });
|
||
await once(worker, 'online');
|
||
worker.unref();
|
||
await worker.terminate();
|
||
}
|
||
|
||
test().then(common.mustCall());
|