HTTP/3: Consider adding new connection feature for completing or pooling stream
Open
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
Assessment
This issue has not been assessed yet.