1'use strict'; 2const common = require('../common'); 3const cluster = require('cluster'); 4const assert = require('assert'); 5 6if (cluster.isMaster) { 7 const worker = cluster.fork(); 8 9 assert.strictEqual(worker.isConnected(), true); 10 11 worker.on('disconnect', common.mustCall(() => { 12 assert.strictEqual(worker.isConnected(), false); 13 })); 14 15 worker.on('message', function(msg) { 16 if (msg === 'readyToDisconnect') { 17 worker.disconnect(); 18 } 19 }); 20} else { 21 function assertNotConnected() { 22 assert.strictEqual(cluster.worker.isConnected(), false); 23 } 24 25 assert.strictEqual(cluster.worker.isConnected(), true); 26 cluster.worker.on('disconnect', common.mustCall(assertNotConnected)); 27 cluster.worker.process.on('disconnect', common.mustCall(assertNotConnected)); 28 29 process.send('readyToDisconnect'); 30} 31