I've encountered a situation where signal handlers don't seem to run. With the following program, sending it SIGINT won't trigger the handler, however if you remove the system* call, then the handler will run.
(use-modules (ice-9 threads))
(call-with-new-thread
(lambda ()
;; Remove the following system* call to fix the handler
(system* "echo" "foo")))
(sigaction SIGINT
(lambda (sig)
(peek "SIGINT handler")
(exit 1)))
(for-each
(lambda _
(sleep 1))
(iota 30))
(display "normal exit\n")
signature.asc
Description: PGP signature
