Skip to content

Conversation

@jkotalik
Copy link
Contributor

@jkotalik jkotalik commented Oct 6, 2020

  • Don't create outbound encoder and decoder streams as they aren't required now in the spec
  • Correctly check if inbound streams have been created to throw exceptions
  • Don't allocate a huge amount for encoding.

@ghost ghost added the area-servers label Oct 6, 2020
@jkotalik jkotalik closed this Oct 7, 2020
@jkotalik jkotalik reopened this Oct 7, 2020
@jkotalik jkotalik force-pushed the jkotalik/controlStreamHandling branch from 1c9ec42 to f37541f Compare October 8, 2020 16:30
// An endpoint MUST allow its peer to create an encoder stream and a
// decoder stream even if the connection's settings prevent their use.

while (_isClosed == 0)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I think it's better to check result.IsCompleted than _isClosed to avoid spinning if the two ever get out -of-sync (even if they're synchronized today).


_haveReceivedSettingsFrame = true;
using var closedRegistration = _context.ConnectionContext.ConnectionClosed.Register(state => ((Http3ControlStream)state).OnStreamClosed(), this);
using var closedRegistration = _context.StreamContext.ConnectionClosed.Register(state => ((Http3ControlStream)state).OnStreamClosed(), this);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's thee difference between OnStreamClosed() and OnInputOrOutputCompleted() supposed to be? I see that OnStreamClosed() calls Abort(ConnectionAbortedException ex) which currently no-ops.

@jkotalik
Copy link
Contributor Author

Merging to my other branch (not to master); need something in this PR for a further refactoring.

@jkotalik jkotalik merged commit 2ec0c43 into jkotalik/funWithHttp3 Oct 14, 2020
@jkotalik jkotalik deleted the jkotalik/controlStreamHandling branch October 14, 2020 16:48
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants