[Openmcl-devel] async signals

Gábor Melis mega at hotpop.com
Thu Sep 1 07:52:11 UTC 2005


Hello

Please think of this as a cross-fertilization attempt between 
implementations :-), although I hope SBCL stands to gain more from your 
understanding of the subject.

Providing sane semantics for portable code is not easy when async 
signals are involved especially for unwind-protect. The problems are 
described here:

  http://www.caddr.com/macho/archives/sbcl-devel/2005-8/5881.html

Some thoughts and a possible, but quite down to earth, 
let's-work-around-most-of-it strategy is here:

  http://www.caddr.com/macho/archives/sbcl-devel/2005-8/5909.html

Since then I've realized that most signal handlers (sigprof, 
sigchld, ...) can be reasonably expected not to unwind the stack beyond 
the handler itself, almost as if they had a separate thread. This kind 
of safety can be optionally enforced by the implementation on a 
per-handler basis.

That leaves C-c (that brings up the debugger), with-timeout and 
terminate-thread all of which are implemented by interrupt-thread that 
plays the part of openmcl's process-interrupt. Oh, and cleanly shutting 
down a thread/process seems problematic for the same reasons.

I've read that openmcl checks for pending interrupts at safe-points. 
Where are these safe points? Do they help with issues above?

Thanks, Gábor Melis




More information about the Openmcl-devel mailing list