cmcfarlen commented on PR #13821:
URL: https://github.com/apache/trafficserver/pull/13821#issuecomment-6324505859

   @bryancall follow-up on the non-blocking notes, all now addressed:
   
   - **Keep-alive eviction after a foreign close:** afeb7fa77c. Once a queue is 
over its limit, `manage_keep_alive_queue()` and `manage_active_queue()` process 
pending handoffs before evicting, so a connection closed on another thread is 
freed and dropped from the count instead of costing a live connection. The 
active queue had the same problem, where it could throttle a new request. 
There's a test for each queue; both fail without the fix.
   - **`closed` store ordering:** 7905f553be. `close_from_foreign_thread()` 
publishes `closed` with a release store, and the owner re-reads it with an 
acquire load before checking the claim, in both `free_netevent()` and 
`process_handoffs()`. It uses the `__atomic` builtins because `std::atomic_ref` 
isn't available on the clang 12 CI toolchain, and `closed` stays a plain `int`.
   - **Unlocked deadline reads:** d65d0162bc. `next_inactivity_timeout_at` and 
`next_activity_timeout_at` are now a small relaxed-atomic wrapper 
(`NetDeadline`). Unlocked reads are defined behavior and still plain moves on 
x86-64/arm64. The handoff list still provides the ordering.
   
   The doc note was handled earlier in adcce4a24f.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to