From 9bb0e557497c6d66ef7bdcda765098fd0271726f Mon Sep 17 00:00:00 2001 From: Igor Ribeiro de Assis Date: Tue, 16 Mar 2021 21:46:22 +0100 Subject: [PATCH] Fix FutureStream memory usage (#17395) [backport:1.2] --- lib/pure/asyncstreams.nim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/pure/asyncstreams.nim b/lib/pure/asyncstreams.nim index 7fe86aa054..083c6f0eab 100644 --- a/lib/pure/asyncstreams.nim +++ b/lib/pure/asyncstreams.nim @@ -127,7 +127,11 @@ proc read*[T](future: FutureStream[T]): owned(Future[(bool, T)]) = resFut.complete(res) # If the saved callback isn't nil then let's call it. - if not savedCb.isNil: savedCb() + if not savedCb.isNil: + if fs.queue.len > 0: + savedCb() + else: + future.cb = savedCb if future.queue.len > 0 or future.finished: newCb(future)