Otherwise resume() will cause data to be emitted before it can be handled.
stream.on('readable', function() {
readable = true;
+
var c;
while (!paused && (null !== (c = stream.read())))
stream.emit('data', c);
stream.resume = function() {
paused = false;
if (readable)
- stream.emit('readable');
+ process.nextTick(function() {
+ stream.emit('readable');
+ });
};
// now make it start, just in case it hadn't already.