From: Pascal J.B. <pj...@in...> - 2004-11-29 10:26:45
|
Hello, It seems that unwinding from a signal handler does not exit the signal handler: [625]> (loop repeat 2 initially (print (linux:|getpid|)) do (linux:set-signal-handler linux:SIGUSR1 (lambda (signal) (princ " Got signal ") (throw :hot-potatoe signal))) (catch :hot-potatoe (princ " Looping ") (loop do (sleep 5) (princ "."))) (princ " Caught ")) 11740 Looping . Got signal Caught Looping ....User defined signal 2 ^ ^^^ ^ kill -USR1 11740 |___________________________||| | kill -USR2 11740 ________________________________| Is there a way to do it? If not, shouldn't the signal handler code be modified to exit the signal handling before unwinding? -- __Pascal Bourguignon__ http://www.informatimago.com/ The world will now reboot; don't bother saving your artefacts. |