Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

stream: Handle late 'readable' event listeners #5148

Closed
wants to merge 2 commits into from

Conversation

isaacs
Copy link

@isaacs isaacs commented Mar 26, 2013

In cases where a stream may have data added to the read queue before the
user adds a 'readable' event, there is never any indication that it's
time to start reading.

True, there's already data there, which the user would get if they
checked However, as we use 'readable' event listening as the signal to
start the flow of data with a read(0) call internally, we ought to
trigger the same effect (ie, emitting a 'readable' event) even if the
'readable' listener is added after the first emission.

To avoid confusing weirdness, only the first 'readable' event listener
is granted this privileged status. After we've started the flow (or,
alerted the consumer that the flow has started) we don't need to start
it again. At that point, it's the consumer's responsibility to consume
the stream.

Closes #5141

cc: @mjijackson

isaacs added 2 commits March 26, 2013 14:43
In cases where a stream may have data added to the read queue before the
user adds a 'readable' event, there is never any indication that it's
time to start reading.

True, there's already data there, which the user would get if they
checked However, as we use 'readable' event listening as the signal to
start the flow of data with a read(0) call internally, we ought to
trigger the same effect (ie, emitting a 'readable' event) even if the
'readable' listener is added after the first emission.

To avoid confusing weirdness, only the *first* 'readable' event listener
is granted this privileged status.  After we've started the flow (or,
alerted the consumer that the flow has started) we don't need to start
it again.  At that point, it's the consumer's responsibility to consume
the stream.

Closes nodejs#5141
@isaacs
Copy link
Author

isaacs commented Mar 28, 2013

Landed on v0.10

@isaacs isaacs closed this Mar 28, 2013
@isaacs isaacs deleted the GH-5141 branch March 28, 2013 17:27
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant