'use strict'; const common = require('../common'); const assert = require('assert'); const { Worker, workerData } = require('worker_threads'); // Test that 'exit' events for nested Workers are not received when a Worker // terminates itself through process.exit(). if (workerData === null) { const nestedWorkerExitCounter = new Int32Array(new SharedArrayBuffer(4)); const w = new Worker(__filename, { workerData: nestedWorkerExitCounter }); w.on('exit', common.mustCall(() => { assert.strictEqual(nestedWorkerExitCounter[0], 0); })); } else { const nestedWorker = new Worker('setInterval(() => {}, 100)', { eval: true }); // The counter should never be increased here. nestedWorker.on('exit', () => workerData[0]++); nestedWorker.on('online', () => process.exit()); }