Skip to content

Commit

Permalink
Avoid recursive exit calls
Browse files Browse the repository at this point in the history
  • Loading branch information
kriszyp committed Sep 23, 2010
1 parent 30657dd commit 9bf988e
Showing 1 changed file with 12 additions and 3 deletions.
15 changes: 12 additions & 3 deletions lib/multi-node.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,9 @@ exports.listen = function(options, server){

}
});
process.exit();
if(signal !== 'exit'){
process.exit();
}
});
});

Expand All @@ -107,7 +109,14 @@ exports.listen = function(options, server){
return emitter;
}

exports.frameStream = function(stream){
// pass in a raw unframed binary stream, and returns a framed stream for sending and
// receving strings or other JSON data
// The second parameter, trusted, indicates to use eval-based parsing which is much faster
exports.frameStream = function(stream, trusted){
var parse = trusted ? function(json){
// eval is way faster than JSON.parse on V8 for some reason
return eval('(' + json + ')');
} : JSON.parse;
var emitter = new process.EventEmitter();
var buffered = [];
var start;
Expand All @@ -133,7 +142,7 @@ exports.frameStream = function(stream){
index += part.length;
});
}
emitter.emit("message", JSON.parse(buffer.toString("utf8", 0, buffer.length)));
emitter.emit("message", parse(buffer.toString("utf8", 0, buffer.length)));
start = i + 1;
buffered = [];
}
Expand Down

0 comments on commit 9bf988e

Please sign in to comment.