From 1eef0ec19c89a9f451ce0c37b854ee29dbde5a85 Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Sat, 22 Jan 2022 13:00:50 +0200 Subject: [PATCH] Obtain a fresh span after flushing --- faststreams/outputs.nim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/faststreams/outputs.nim b/faststreams/outputs.nim index ba8f55f..35c7162 100644 --- a/faststreams/outputs.nim +++ b/faststreams/outputs.nim @@ -132,8 +132,11 @@ template flushImpl(s: OutputStream, awaiter, writeOp, flushOp: untyped) = fsAssert s.extCursorsCount == 0 if s.vtable != nil: if s.buffers != nil: + let runway = s.span.len trackWrittenTo(s.buffers, s.span.startAddr) awaiter s.vtable.writeOp(s, nil, 0) + s.span = getWritableSpan(s.buffers) + s.spanEndPos += s.span.len - runway if s.vtable.flushOp != nil: awaiter s.vtable.flushOp(s)