summaryrefslogtreecommitdiff
path: root/test/parallel/test-cluster-worker-isdead.js
blob: 15567b929a59e6cd3cc5e90f6457d3d250a7f20c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'use strict';
require('../common');
const cluster = require('cluster');
const assert = require('assert');

if (cluster.isMaster) {
  const worker = cluster.fork();
  let workerDead = worker.isDead();
  assert.ok(!workerDead,
            `isDead() returned ${workerDead}. isDead() should return ` +
            'false right after the worker has been created.');

  worker.on('exit', function() {
    workerDead = worker.isDead();
    assert.ok(workerDead,
              `isDead() returned ${workerDead}. After an event has been ` +
              'emitted, isDead should return true');
  });

  worker.on('message', function(msg) {
    if (msg === 'readyToDie') {
      worker.kill();
    }
  });

} else if (cluster.isWorker) {
  const workerDead = cluster.worker.isDead();
  assert.ok(!workerDead,
            `isDead() returned ${workerDead}. isDead() should return ` +
            'false when called from within a worker');
  process.send('readyToDie');
}