Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
cluster: Rename 'death' back to 'exit'
Browse files Browse the repository at this point in the history
  • Loading branch information
isaacs committed Mar 30, 2012
1 parent 4071815 commit 90ce5b3
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 32 deletions.
26 changes: 13 additions & 13 deletions doc/api/cluster.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ all share server ports.
cluster.fork();
}

cluster.on('death', function(worker) {
cluster.on('exit', function(worker) {
console.log('worker ' + worker.pid + ' died');
});
} else {
Expand Down Expand Up @@ -87,7 +87,7 @@ This can be used to log worker activity, and create you own timeout.
cluster.on('listening', function (worker) {
clearTimeout(timeouts[worker.uniqueID]);
});
cluster.on('death', function (worker) {
cluster.on('exit', function (worker) {
clearTimeout(timeouts[worker.uniqueID]);
errorMsg();
});
Expand Down Expand Up @@ -126,22 +126,22 @@ When a workers IPC channel has disconnected this event is emitted. This will hap
when the worker dies, usually after calling `.destroy()`.

When calling `.disconnect()`, there may be a delay between the
`disconnect` and `death` events. This event can be used to detect if
`disconnect` and `exit` events. This event can be used to detect if
the process is stuck in a cleanup or if there are long-living
connections.

cluster.on('disconnect', function(worker) {
console.log('The worker #' + worker.uniqueID + ' has disconnected');
});

## Event: 'death'
## Event: 'exit'

* `worker` {Worker object}

When any of the workers die the cluster module will emit the 'death' event.
When any of the workers die the cluster module will emit the 'exit' event.
This can be used to restart the worker by calling `fork()` again.

cluster.on('death', function(worker) {
cluster.on('exit', function(worker) {
console.log('worker ' + worker.pid + ' died. restart...');
cluster.fork();
});
Expand Down Expand Up @@ -286,10 +286,10 @@ This example will echo back all messages from the master:
### worker.destroy()

This function will kill the worker, and inform the master to not spawn a
new worker. To know the difference between suicide and accidentally death
a suicide boolean is set to true.
new worker. To know the difference between suicide and accidentally

This comment has been minimized.

Copy link
@mscdex

mscdex Mar 30, 2012

s/accidentally/an accidental/

This comment has been minimized.

Copy link
@bnoordhuis

bnoordhuis Mar 30, 2012

Member

Right. It seems @isaacs accidentally the words.

Edit: fixed in 26a0b5.

exit, the `suicide` boolean is set to true.

cluster.on('death', function (worker) {
cluster.on('exit', function (worker) {
if (worker.suicide === true) {
console.log('Oh, it was just suicide\' – no need to worry').
}
Expand All @@ -305,7 +305,7 @@ When calling this function the worker will no longer accept new connections, but
they will be handled by any other listening worker. Existing connection will be
allowed to exit as usual. When no more connections exist, the IPC channel to the worker
will close allowing it to die graceful. When the IPC channel is closed the `disconnect`
event will emit, this is then followed by the `death` event, there is emitted when
event will emit, this is then followed by the `exit` event, there is emitted when
the worker finally die.

Because there might be long living connections, it is useful to implement a timeout.
Expand Down Expand Up @@ -427,13 +427,13 @@ on the specified worker.
// Worker has disconnected
};

### Event: 'death'
### Event: 'exit'

* `worker` {Worker object}

Same as the `cluster.on('death')` event, but emits only when the state change
Same as the `cluster.on('exit')` event, but emits only when the state change
on the specified worker.

cluster.fork().on('death', function (worker) {
cluster.fork().on('exit', function (worker) {
// Worker has died
};
8 changes: 4 additions & 4 deletions lib/cluster.js
Original file line number Diff line number Diff line change
Expand Up @@ -294,9 +294,9 @@ function Worker(customEnv) {

// handle internalMessage, exit and disconnect event
this.process.on('internalMessage', handleMessage.bind(null, this));
this.process.on('exit', prepareDeath.bind(null, this, 'dead', 'death'));
this.process.on('exit', prepareExit.bind(null, this, 'dead', 'exit'));
this.process.on('disconnect',
prepareDeath.bind(null, this, 'disconnected', 'disconnect'));
prepareExit.bind(null, this, 'disconnected', 'disconnect'));

// relay message and error
this.process.on('message', this.emit.bind(this, 'message'));
Expand All @@ -306,7 +306,7 @@ function Worker(customEnv) {
util.inherits(Worker, EventEmitter);
cluster.Worker = Worker;

function prepareDeath(worker, state, eventName) {
function prepareExit(worker, state, eventName) {

// set state to disconnect
worker.state = state;
Expand Down Expand Up @@ -417,7 +417,7 @@ if (cluster.isMaster) {
// there are no more servers open so we will close the IPC channel.
// Closing the IPC channel will emit a disconnect event
// in both master and worker on the process object.
// This event will be handled by prepareDeath.
// This event will be handled by prepareExit.
self.process.disconnect();
});

Expand Down
10 changes: 5 additions & 5 deletions test/simple/test-cluster-basic.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,26 +49,26 @@ else if (cluster.isMaster) {
fork: false,
online: false,
listening: false,
death: false
exit: false
},
equal: {
fork: false,
online: false,
listening: false,
death: false
exit: false
}
},

worker: {
events: {
online: false,
listening: false,
death: false
exit: false
},
equal: {
online: false,
listening: false,
death: false
exit: false
},
states: {
none: false,
Expand Down Expand Up @@ -106,7 +106,7 @@ else if (cluster.isMaster) {
});

//Kill process when worker is killed
cluster.on('death', function() {
cluster.on('exit', function() {
process.exit(0);
});

Expand Down
2 changes: 1 addition & 1 deletion test/simple/test-cluster-http-pipe.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ if (cluster.isMaster) {
assert.equal(msg, 'DONE');
ok = true;
});
worker.on('death', function() {
worker.on('exit', function() {
process.exit();
});
process.on('exit', function() {
Expand Down
2 changes: 1 addition & 1 deletion test/simple/test-cluster-message.js
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ else if (cluster.isMaster) {
worker.destroy();
});

worker.on('death', function() {
worker.on('exit', function() {
process.exit(0);
});

Expand Down
16 changes: 8 additions & 8 deletions test/simple/test-cluster-worker-disconnect.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ if (cluster.isWorker) {
var checks = {
cluster: {
emitDisconnect: false,
emitDeath: false,
emitExit: false,
callback: false
},
worker: {
emitDisconnect: false,
emitDeath: false,
emitExit: false,
state: false,
suicideMode: false,
died: false
Expand Down Expand Up @@ -69,8 +69,8 @@ if (cluster.isWorker) {
cluster.once('disconnect', function() {
checks.cluster.emitDisconnect = true;
});
cluster.once('death', function() {
checks.cluster.emitDeath = true;
cluster.once('exit', function() {
checks.cluster.emitExit = true;
});

// Check worker eventes and properties
Expand All @@ -81,8 +81,8 @@ if (cluster.isWorker) {
});

// Check that the worker died
worker.once('death', function() {
checks.worker.emitDeath = true;
worker.once('exit', function() {
checks.worker.emitExit = true;
checks.worker.died = !alive(worker.process.pid);
process.nextTick(function() {
process.exit(0);
Expand All @@ -97,8 +97,8 @@ if (cluster.isWorker) {
// events
assert.ok(w.emitDisconnect, 'Disconnect event did not emit');
assert.ok(c.emitDisconnect, 'Disconnect event did not emit');
assert.ok(w.emitDeath, 'Death event did not emit');
assert.ok(c.emitDeath, 'Death event did not emit');
assert.ok(w.emitExit, 'Exit event did not emit');
assert.ok(c.emitExit, 'Exit event did not emit');

// flags
assert.equal(w.state, 'disconnected', 'The state property was not set');
Expand Down

0 comments on commit 90ce5b3

Please sign in to comment.