Compact buffer when writable bytes drop below a set low watermark #266
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Internal buffer used by
ChunkedReader
was not being reset (its recorded positions) under edge cases, whereRead
operation onNetworkStream
was given acount
of0
which was conceived as anUnexpected end of stream
.This PR addresses this problem by checking the number of writable bytes left in the buffer against a pre-defined constant value of
1024
and when drops under this value, the buffer positions are reset and leftover bytes are copied to the beginning of the buffer.Related with the discussion on Introduce network level write throttling #10433 and might be related to #250.