Add: only buffer at most 5 max-sized packets per client #20
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.
This means that when a user downloads a 500+ MiB content entry,
and is on a slow connection, the asyncio write() task will no
longer cache this in full in the memory. Now it will "async" out
till there is room in the write buffer again before continueing
to write. This should heavily reduce the memory footprint in
production.
Additionally, raise an exception if the socket is being closed,
instead of returning False. This means it bubbles up for all
send_packet() calls, which should reduce the amount of warnings
we are now seeing about writing to a closed socket.
Also fixes #15