Context
Adversarial review found that Notify::notify_one() has a race condition: if fired before the receiver calls notified().await, the notification is lost. The sender then falls back to a 5-second sleep (WRITABLE_FALLBACK_SECS), causing throughput stalls.
Fix (two changes)
- Replace notify_one() with notify_waiters() for writable notifications in client.rs and server.rs
- Reduce WRITABLE_FALLBACK_SECS from 5 to 0.1 (100ms) as safety net
Files
- crates/quick-transport/src/client.rs — writable notifier.notify_one() → notify_waiters()
- crates/quick-transport/src/server.rs — same
- bins/quick-entry/src/tunnel.rs — WRITABLE_FALLBACK_SECS 5 → Duration::from_millis(100)
- bins/quick-exit/src/tunnel.rs — same
Acceptance Criteria
Context
Adversarial review found that Notify::notify_one() has a race condition: if fired before the receiver calls notified().await, the notification is lost. The sender then falls back to a 5-second sleep (WRITABLE_FALLBACK_SECS), causing throughput stalls.
Fix (two changes)
Files
Acceptance Criteria