[cmucl-imp] gc & blocked signals
Helmut Eller
heller at common-lisp.net
Tue Jan 31 22:03:13 UTC 2012
I think there is a problem related to blocked signals and garbage
collection:
1. Start cmucl -noinit -eval '(loop (ext:gc :full t))'
in a terminal and let it run.
2. Under Linux, cat /proc/<pid>/status shows that SigBlk is 0 i.e.
no signals are blocked.
3. Interrupt the loop with C-c (SIGINT) and wait for the debugger.
4. SigBlk is still 0.
5. Type c to continue the loop.
6. SigBlk is now 000000001fc90000
That's a bug, right? It should again be zero.
The sigmask 000000001fc90000 corresponds to the signals:
17 SIGCHLD
20 SIGTSTP
23 SIGURG
24 SIGXCPU
25 SIGXFSZ
26 SIGVTALRM
27 SIGPROF
28 SIGWINCH
29 SIGIO
SLIME uses SIGIO on a socket and if that stays blocked then SLIME can't
interrupt the Lisp process. Also note that C-z in the terminal doesn't
stop the process; presumably because SIGTSTP is blocked.
lisp-implementation-version is "20c release-20c (20C Unicode)".
Helmut
More information about the cmucl-imp
mailing list