Skip to content

Commit

Permalink
lib: return boolean from child.send()
Browse files Browse the repository at this point in the history
Previous change reinstated returning boolean from child.send() but
missed one instance where undefined might be returned instead.

PR-URL: #3577
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
Trott authored and rvagg committed Nov 6, 2015
1 parent 90723af commit d2b5dcb
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
2 changes: 1 addition & 1 deletion lib/internal/child_process.js
Expand Up @@ -551,7 +551,7 @@ function setupChannel(target, channel) {
handle: handle,
message: message.msg,
});
return;
return this._handleQueue.length === 1;
}

var obj = handleConversion[message.type];
Expand Down
22 changes: 21 additions & 1 deletion test/parallel/test-child-process-send-returns-boolean.js
@@ -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);
});

0 comments on commit d2b5dcb

Please sign in to comment.