aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/stream.rs8
1 files 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