From 9362d268904de694328f20e9e3a31b569955787c Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Tue, 13 Sep 2022 12:08:33 +0200 Subject: [PATCH] fill_buffer do something only if buf is empty --- src/stream.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/stream.rs b/src/stream.rs index 82f7be3..88c3fed 100644 --- a/src/stream.rs +++ b/src/stream.rs @@ -101,13 +101,15 @@ impl ByteStreamReader { } } - /// Tries to fill the internal read buffer from the underlying stream. + /// Tries to fill the internal read buffer from the underlying stream if it is empty. /// Calling this might be necessary to ensure that `.eos()` returns a correct /// result, otherwise the reader might not be aware that the underlying /// stream has nothing left to return. pub async fn fill_buffer(&mut self) { - let packet = self.stream.next().await; - self.add_stream_next(packet); + if self.buf.is_empty() { + let packet = self.stream.next().await; + self.add_stream_next(packet); + } } /// Clears the internal read buffer and returns its content