| 'use strict'; |
| const common = require('../common'); |
| const cluster = require('cluster'); |
| const assert = require('assert'); |
| |
| if (cluster.isMaster) { |
| const worker = cluster.fork(); |
| |
| assert.strictEqual(worker.isConnected(), true); |
| |
| worker.on('disconnect', common.mustCall(() => { |
| assert.strictEqual(worker.isConnected(), false); |
| })); |
| |
| worker.on('message', function(msg) { |
| if (msg === 'readyToDisconnect') { |
| worker.disconnect(); |
| } |
| }); |
| } else { |
| function assertNotConnected() { |
| assert.strictEqual(cluster.worker.isConnected(), false); |
| } |
| |
| assert.strictEqual(cluster.worker.isConnected(), true); |
| cluster.worker.on('disconnect', common.mustCall(assertNotConnected)); |
| cluster.worker.process.on('disconnect', common.mustCall(assertNotConnected)); |
| |
| process.send('readyToDisconnect'); |
| } |