lib: return boolean from child.send()

Previous change reinstated returning boolean from child.send() but
missed one instance where undefined might be returned instead.

PR-URL: https://github.com/nodejs/node/pull/3577
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
pull/3602/head
Rich Trott 2015-10-25 11:48:41 -07:00
parent d995b72db9
commit cf0130dc0d
2 changed files with 22 additions and 2 deletions

View File

@ -551,7 +551,7 @@ function setupChannel(target, channel) {
handle: handle,
message: message.msg,
});
return;
return this._handleQueue.length === 1;
}
var obj = handleConversion[message.type];

View File

@ -1,9 +1,29 @@
'use strict';
const common = require('../common');
const assert = require('assert');
const path = require('path');
const net = require('net');
const fork = require('child_process').fork;
const spawn = require('child_process').spawn;
const n = fork(common.fixturesDir + '/empty.js');
const emptyFile = path.join(common.fixturesDir, 'empty.js');
const n = fork(emptyFile);
const rv = n.send({ hello: 'world' });
assert.strictEqual(rv, true);
const spawnOptions = { stdio: ['pipe', 'pipe', 'pipe', 'ipc'] };
const s = spawn(process.execPath, [emptyFile], spawnOptions);
var handle = null;
s.on('exit', function() {
handle.close();
});
net.createServer(common.fail).listen(common.PORT, function() {
handle = this._handle;
assert.strictEqual(s.send('one', handle), true);
assert.strictEqual(s.send('two', handle), true);
assert.strictEqual(s.send('three'), false);
assert.strictEqual(s.send('four'), false);
});