mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 19:45:09 +00:00
fix WebSocket deadlock on slow client + mobile TX controls visibility
Deadlock: BroadcastBinary held FClientLock during blocking SockSend; slow/stalled client caused Stop() to wait forever. Fix: set SO_SNDTIMEO=1s on each accepted socket so SockSend returns error instead of hanging, mark client wsClosed on send failure so subsequent ticks skip it. Mobile: move TONE/TX-slider/MOX to front of toolbar via CSS order so they are immediately visible without horizontal scroll on phones. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -588,6 +588,9 @@ begin
|
||||
SockClose(CSock);
|
||||
Continue;
|
||||
end;
|
||||
// 1 секунда на отправку: если TCP-буфер клиента переполнен, SockSend
|
||||
// вернёт ошибку вместо того чтобы висеть и держать FClientLock вечно.
|
||||
SockSetSndTimeout(CSock, 1000);
|
||||
Client := TWsClient.Create(CSock);
|
||||
FClientLock.Enter;
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user