streams2: Switch to old-mode immediately, not nextTick

This fixes the CONNECT/Upgrade HTTP functionality, which was not getting
sliced properly, because readable wasn't emitted on this tick.

Conflicts:

	test/simple/test-http-connect.js
pull/24504/head
isaacs 2012-12-04 17:20:12 -08:00
parent 83704f1279
commit 42981e2aad
2 changed files with 6 additions and 4 deletions

View File

@ -568,9 +568,7 @@ function emitDataEvents(stream) {
};
// now make it start, just in case it hadn't already.
process.nextTick(function() {
stream.emit('readable');
});
stream.emit('readable');
}
// wrap an old-style stream as the async data source.

View File

@ -73,7 +73,11 @@ server.listen(common.PORT, function() {
assert(!socket.onend);
assert.equal(socket.listeners('connect').length, 0);
assert.equal(socket.listeners('data').length, 0);
assert.equal(socket.listeners('end').length, 0);
// the stream.Duplex onend listener
// allow 0 here, so that i can run the same test on streams1 impl
assert(socket.listeners('end').length <= 1);
assert.equal(socket.listeners('free').length, 0);
assert.equal(socket.listeners('close').length, 0);
assert.equal(socket.listeners('error').length, 0);