mirror of https://github.com/nodejs/node.git
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
parent
cfd0dca9ae
commit
9352c19885
|
@ -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' });
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue