| 'use strict'; |
| require('../common'); |
| const cluster = require('cluster'); |
| const assert = require('assert'); |
| |
| if (cluster.isPrimary) { |
| 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'); |
| } |