Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKhoo Hao Yit <40757009+KhooHaoYit@users.noreply.github.com>2022-03-16 20:45:45 +0300
committerGitHub <noreply@github.com>2022-03-16 20:45:45 +0300
commit6d3920d579a3dc3a1e15875a15fb54e3ff4201c0 (patch)
tree94e76afb881bd89fd522cbce5eeef205fdd087b8 /lib
parent6a51306213cf8f6693d5a817fbd6f14361d84aac (diff)
stream: do cleanup when iterator is destroyed
PR-URL: https://github.com/nodejs/node/pull/42320 Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Nitzan Uziely <linkgoron@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/internal/streams/readable.js5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/internal/streams/readable.js b/lib/internal/streams/readable.js
index 3fcd373cb1c..4b7613fd13d 100644
--- a/lib/internal/streams/readable.js
+++ b/lib/internal/streams/readable.js
@@ -1122,7 +1122,7 @@ async function* createAsyncIterator(stream, options) {
stream.on('readable', next);
let error;
- eos(stream, { writable: false }, (err) => {
+ const cleanup = eos(stream, { writable: false }, (err) => {
error = err ? aggregateTwoErrors(error, err) : null;
callback();
callback = nop;
@@ -1150,6 +1150,9 @@ async function* createAsyncIterator(stream, options) {
(error === undefined || stream._readableState.autoDestroy)
) {
destroyImpl.destroyer(stream, null);
+ } else {
+ stream.off('readable', next);
+ cleanup();
}
}
}