dotnet / dotnet/aspnetcore

HTTP/3: Consider adding new connection feature for completing or pooling stream

Open
#35,400 1 comment 0 reactions 0 assignees View on GitHub
area-networking HTTP3
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 6h
Merged PRs (30d)
290

Description

`QuicStreamContext.DisposeAsync()` is used to:

1. Wait for the connection to drain
2. Call back to `Http3Stream` and notify it that the stream is complete
3. Optionally pool the context
4. Dispose `QuicStream`.

Consider adding an `ICompleteConnectionFeature` or `IConnectionDrainFeature` that handles step 1. That would allow step 2 to happen without a callback.

Benefits:
1. Reduce the amount of logic in `DisposeAsync()`
2. Performance benefit of not registering and executing callback for each request.

---

Alternatively, add a feature that is explicitly for pooling the QUIC stream back onto the QUIC connection.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.