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 committed Oct 30, 2015
1 parent d995b72 commit cf0130d
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
@@ -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 cf0130d

Please sign in to comment.