mirror of https://github.com/ospab/ostp.git
Addresses the PC-after-sleep failure (app either fully disconnects or gets stuck "Connecting") and the mobile "must reconnect manually" symptom. - Zombie receiver tasks: each session spawns a task that loops on recv(). On a dead connection recv() never returns, so the task (and the socket it holds) leaked on every reconnect, piling up across sleep/resume cycles. SessionState now owns the task's AbortHandle and aborts it on Drop, so replacing sessions tears the old task down. The three duplicated inline receiver loops are consolidated into spawn_session_receiver(). (Builds on the tick-storm and resume-detection changes already in tree: MissedTickBehavior::Skip on all intervals so a post-sleep wake doesn't fire tens of thousands of catch-up ticks — the 10ms retransmit tick was the worst — and a wall-clock-gap check that forces one clean reconnect on wake via handle_keepalive(force=true).) |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| test_udp.rs | ||