SwiftQUIC: New inbound streams should enqueue the inboundDataAvailable event - #73
Open
agnosticdev wants to merge 1 commit into
Open
SwiftQUIC: New inbound streams should enqueue the inboundDataAvailable event#73agnosticdev wants to merge 1 commit into
agnosticdev wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
There has been a long-standing situation where a new inbound QUIC stream did not deliver a inbound data available event. You could work around this by doing an optimistic read and that is what is done on the server today. The idea is that if you received a new stream frame it was also likely to contain data.
This situation showed up though with the QUICTransfer benchmark. Folks that wanted to use it to measure 1 transfer could not do so because it would never finish the benchmark and just hang. This got me to dig in and fix this situation.
The side affect here will be more events on the server side so heads up @glbrntt.
I also took the time here to refactor the QUICTransfer benchmark to use a more refined write / read loop.
You should now be able to do: