l...@gnu.org (Ludovic Courtès) skribis: > On 2.2.3, it prints: > > $ guile select.scm > > > ;;; (signal! (2)) > ;;; (reading-from #<input: file /dev/pts/9>) > >>From there on it’s stuck in a read(0, …) call. > > The attached patch fixes it by clearing the returned FD sets on > EINTR/EAGAIN.
There’s a case where we can get a “fake” EINTR that doesn’t come from the underlying select(2) call: when the ‘scm_i_prepare_to_wait_on_fd’ call in ‘scm_std_select’ returns 1, which happens when new asyncs have been queued. Ludo’.