• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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