streams2: Switch to old-mode immediately, not nextTick
authorisaacs <i@izs.me>
Wed, 5 Dec 2012 01:20:12 +0000 (17:20 -0800)
committerisaacs <i@izs.me>
Fri, 14 Dec 2012 18:52:28 +0000 (10:52 -0800)
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

lib/_stream_readable.js
test/simple/test-http-connect.js

index ac21330..a0cb13c 100644 (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.
index 668dda7..3643cec 100644 (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);