summaryrefslogtreecommitdiff
path: root/lib/_stream_readable.js
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2019-02-15 17:19:38 +0100
committerMatteo Collina <hello@matteocollina.com>2019-02-28 16:12:26 +0100
commitcd302d70ddd0d1c249a7242ef7eb1b90bf8eb0de (patch)
tree602bd5550ee82467ed98a55e291df66c27a44991 /lib/_stream_readable.js
parent0d64a560121e7420df9df7c2b5a7e162c4ef307b (diff)
downloadandroid-node-v8-cd302d70ddd0d1c249a7242ef7eb1b90bf8eb0de.tar.gz
android-node-v8-cd302d70ddd0d1c249a7242ef7eb1b90bf8eb0de.tar.bz2
android-node-v8-cd302d70ddd0d1c249a7242ef7eb1b90bf8eb0de.zip
stream: make _read() be called indefinitely if the user wants so
Fixes: https://github.com/nodejs/node/issues/26097 PR-URL: https://github.com/nodejs/node/pull/26135 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'lib/_stream_readable.js')
-rw-r--r--lib/_stream_readable.js3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/_stream_readable.js b/lib/_stream_readable.js
index 8db8848ba1..1fe5e0573d 100644
--- a/lib/_stream_readable.js
+++ b/lib/_stream_readable.js
@@ -495,6 +495,7 @@ Readable.prototype.read = function(n) {
};
function onEofChunk(stream, state) {
+ debug('onEofChunk');
if (state.ended) return;
if (state.decoder) {
var chunk = state.decoder.end();
@@ -525,6 +526,7 @@ function onEofChunk(stream, state) {
// a nextTick recursion warning, but that's not so bad.
function emitReadable(stream) {
var state = stream._readableState;
+ debug('emitReadable', state.needReadable, state.emittedReadable);
state.needReadable = false;
if (!state.emittedReadable) {
debug('emitReadable', state.flowing);
@@ -538,6 +540,7 @@ function emitReadable_(stream) {
debug('emitReadable_', state.destroyed, state.length, state.ended);
if (!state.destroyed && (state.length || state.ended)) {
stream.emit('readable');
+ state.emittedReadable = false;
}
// The stream needs another readable event if