SIGN IN SIGN UP

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