Try to bounds the stream between the receiver and the PACK decoder #608
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.
Already spotted into
multipart_form
but currently, the stream of the PACK file is not bound. The side effect is:lwt
does not really do the concurrence between the receiving and the decoding and we need to limit how many chunks we can have into our stream. So we useLwt_stream.bounded_push
.The final expectation is to give opportunities to some processes to run even if we started to decode the PACK file. Now, the decoding is highly bound to the receiver (the socket) which can block. That mostly means that, by transitivity, the decoder can block too and let opportunities to some other processes.