Hi! I have a program that runs "run-server" (from module "system repl server") on a separate thread (I'm using guile 2.1.4, current master; the problem did not appear with 2.0).
The REPL server thread receives signals SIGXCPU and SIGPWR while calling "select", and errors out saying the syscall was interrupted (raised by guile's interface to the "select" syscall). The signals are raised by libgc (through "pthread_kill"). SIGPWR (30) is raised by GC_suspend_all, while SIGXCPU (24) is raised by GC_start_world. Using sigaction to set these two signals to SIG_IGN on the thread results in a later lockup (I guess the GC is still blocked trying to stop that thread). Using it instead to add SA_RESTART to the signal's flags (copying the old handler) does not solve the problem (select is still interrupted). Any ideas what I can do to avoid this problem? Thanks, Lluis