child_process: don't emit same handle twice

It's possible to read multiple messages off the parent/child channel.
When that happens, make sure that recvHandle is cleared after emitting
the first message so it doesn't get emitted twice.
pull/24507/merge
Ben Noordhuis 2013-03-25 00:29:55 +01:00
parent cfd0dca9ae
commit 9352c19885
2 changed files with 2 additions and 0 deletions

View File

@ -337,6 +337,7 @@ function setupChannel(target, channel) {
var message = JSON.parse(json);
handleMessage(target, message, recvHandle);
recvHandle = undefined;
start = i + 1;
}

View File

@ -35,6 +35,7 @@ if (process.argv[2] === 'child') {
}
if (m.cmd === 'close') {
assert.equal(socket, undefined);
sockets[m.id].once('close', function() {
process.send({ id: m.id, status: 'closed' });
});