cluster: return worker reference from disconnect()
Changes disconnect() to return a refererence to the worker. This will enable method chaining such as worker.disconnect().once('disconnect', doThis); PR-URL: https://github.com/nodejs/node/pull/10019 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
This commit is contained in:
parent
5e781a3883
commit
5d14602181
@ -257,6 +257,8 @@ It is not emitted in the worker.
|
||||
added: v0.7.7
|
||||
-->
|
||||
|
||||
* Returns: {Worker} A reference to `worker`.
|
||||
|
||||
In a worker, this function will close all servers, wait for the `'close'` event on
|
||||
those servers, and then disconnect the IPC channel.
|
||||
|
||||
|
@ -430,6 +430,7 @@ function masterInit() {
|
||||
send(this, { act: 'disconnect' });
|
||||
removeHandlesForWorker(this);
|
||||
removeWorker(this);
|
||||
return this;
|
||||
};
|
||||
|
||||
Worker.prototype.destroy = function(signo) {
|
||||
@ -687,6 +688,7 @@ function workerInit() {
|
||||
|
||||
Worker.prototype.disconnect = function() {
|
||||
_disconnect.call(this);
|
||||
return this;
|
||||
};
|
||||
|
||||
Worker.prototype.destroy = function() {
|
||||
|
@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
var cluster = require('cluster');
|
||||
var worker1, worker2;
|
||||
|
||||
@ -26,7 +27,8 @@ if (cluster.isMaster) {
|
||||
cluster.worker.destroy();
|
||||
});
|
||||
|
||||
cluster.worker.disconnect();
|
||||
const w = cluster.worker.disconnect();
|
||||
assert.strictEqual(w, cluster.worker, 'did not return a reference');
|
||||
} else {
|
||||
// Call destroy when worker is not disconnected yet
|
||||
cluster.worker.destroy();
|
||||
|
@ -40,7 +40,8 @@ if (cluster.isWorker) {
|
||||
|
||||
// Disconnect worker when it is ready
|
||||
worker.once('listening', common.mustCall(() => {
|
||||
worker.disconnect();
|
||||
const w = worker.disconnect();
|
||||
assert.strictEqual(worker, w, 'did not return a reference');
|
||||
}));
|
||||
|
||||
// Check cluster events
|
||||
|
@ -13,7 +13,8 @@ if (cluster.isMaster) {
|
||||
|
||||
worker.on('message', common.mustCall((message) => {
|
||||
assert.strictEqual(message, true, 'did not receive expected message');
|
||||
worker.disconnect();
|
||||
const w = worker.disconnect();
|
||||
assert.strictEqual(worker, w, 'did not return a reference');
|
||||
}));
|
||||
|
||||
worker.on('online', () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user