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.
This commit is contained in:
Ben Noordhuis committed 2013-03-25 23:07:30 +01:00
1 parent cfd0dca9ae
commit 9352c19885
2 files changed
+2

No files matched your search

+1
View File
@@ -337,6 +337,7 @@ function setupChannel(target, channel) {
var message = JSON.parse(json);
handleMessage(target, message, recvHandle);
recvHandle = undefined;
start = i + 1;
}
@@ -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' });
});