Support Priority Work on Connections
Description
Sometimes an application would like to prefer new work over existing work already queued on the connection. This PR adds the notion of priority to the connection's operation queue, and exposes flags through the API to allow the app to chose to leverage this.
Testing
SpinQuic updated. Need to add some explicit BVTs.
Documentation
TODO
Codecov Report
Attention: Patch coverage is 87.50000% with 6 lines in your changes missing coverage. Please review.
Project coverage is 84.51%. Comparing base (
971eb6f) to head (3d71a11). Report is 8 commits behind head on main.
| Files | Patch % | Lines |
|---|---|---|
| src/core/api.c | 90.90% | 2 Missing :warning: |
| src/core/connection.c | 60.00% | 2 Missing :warning: |
| src/core/datagram.c | 60.00% | 2 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## main #4279 +/- ##
==========================================
- Coverage 85.44% 84.51% -0.93%
==========================================
Files 56 56
Lines 15384 15426 +42
==========================================
- Hits 13145 13038 -107
- Misses 2239 2388 +149
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
What's this build error?
What's this build error?
Means you're not calling new correctly. You need to use the std::nothrow version.
CIFulzz is failling in QuicConnRelease, by CXPLAT_TEL_ASSERT(Connection->RefTypeCount[QUIC_CONN_REF_STREAM] > 0).
I believe that QuicOperationFree is not called as expected? and Stream might not be released.
Any idea of affecting releasing Operation by changing operation order.
Cannot repro using oss-fuzz....
