From f97d840f96592eca16e362574d5e27cf66fa974f 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] (cherry picked from commit 9bb0e557497c6d66ef7bdcda765098fd0271726f) --- 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 7ffde9c106..bd366f58d7 100644 --- a/lib/pure/asyncstreams.nim +++ b/lib/pure/asyncstreams.nim @@ -110,7 +110,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)