mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-22 08:02:24 +00:00
`wait_below_high_water` takes its mutex through `Locked::locked` and then unwrapped the condvar wait on the next line. `Condvar::wait_timeout` hands back the same poison the lock does, so the guard and the hole in it sat four lines apart: a thread that panicked holding that mutex would stop the PTY reader parking on it, which is the thread that pumps a pane's output. The drift guard that was supposed to prevent exactly this only looked for `.lock().unwrap()`, so it never saw the wait. It now covers both ways poison reaches a caller, and names this site when the fix is reverted. `host/server.rs` already did it the tolerant way and `control.rs` reads a poisoned wait as "not done", so this was the one site out of step.