A program of mine using guile-2.0.11 fails whenever a signal occurs while a call to select is blocking, with this error:
Backtrace: In ice-9/boot-9.scm: 157: 9 [catch #t #<catch-closure 820f0a0> ...] In unknown file: ?: 8 [apply-smob/1 #<catch-closure 820f0a0>] In ice-9/boot-9.scm: 63: 7 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 432: 6 [eval # #] In ice-9/boot-9.scm: 2401: 5 [save-module-excursion #<procedure 821fd00 at ice-9/boot-9.scm:4045:3 ()>] 4052: 4 [#<procedure 821fd00 at ice-9/boot-9.scm:4045:3 ()>] In unknown file: ?: 3 [load-compiled/vm "/home/chris/.cache/guile/ccache/2.0-LE-4-2.0/home/chris/src/event-loop.scm.go"] In /home/chris/src/./event-loop.scm: 258: 2 [#<procedure 8767350 ()>] 68: 1 [event-loop-run #<r6rs:record:event-loop>] In unknown file: ?: 0 [select (5) () () #<undefined> #<undefined>] ERROR: In procedure select: ERROR: In procedure select: Interrupted system call According to the mailing list exchange at http://lists.gnu.org/archive/html/guile-rpc-bugs/2014-05/msg00001.html , this was fixed in guile >= 2.0.10. However it is still present (or back as a regression) in guile-2.0.11. The EINTR-safe wrapper mentioned in the mailing list exchange fixes it for me in user code, but it would be nice if it were not necessary and guile handled EINTR itself.