libvncserver: don't exit listener thread on EINTR from select()
listenerRun() exited on any select() failure, including EINTR, which is never restarted by SA_RESTART (see signal(7)). A single stray signal delivered to the listener thread thus permanently killed the accept loop while the listening sockets stayed open: clients still completed the TCP handshake but hung forever waiting for the RFB protocol version greeting, because nothing called accept() anymore. Observed in the field on Android, where the platform's debugging and profiling infrastructure routinely delivers signals to app threads. Treat EINTR/EAGAIN as benign and retry. Closes #732 Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
土
土屋 岳紀 committed
42494999e6492aaab9c1db785ecd293ef10b3aed
Parent: 6389c1c
Committed by GitHub <noreply@github.com>
on 7/6/2026, 6:04:50 AM