From: Daniel Barlow <dan_b@us...> - 2003-08-16 20:38:43
Update of /cvsroot/sbcl/sbcl/contrib/asdf-install
In directory sc8-pr-cvs1:/tmp/cvs-serv23626/contrib/asdf-install
Implement INTERRUPT-THREAD, which forces another thread to
execute a function supplied by the caller.
In the process, design a mostly entirely new scheme for
calling Lisp code as a result of a handled signal: instead of
calling into Lisp directly, frob the signal context and the
stack to arrange that the Lisp is called after the signal
handler itself has returned. This is expected to be
applicable to signal handlers generally (and will have portability
benefits), but needs them to be changed around to call it.
Presently it's used only for interrupt-thread (SIGRTMIN)
and control stack exhaustion (one branch of SIGSEGV)
In principle, all you need do to use this in other places is
call return_to_lisp_function in the signal handler, with the
context and the function object that you wish to be called.
For the x86 you also need to make sure the signal is being
handled on the alternate signal stack, otherwise you'll
overwrite your own stack frame.
RCS file: /cvsroot/sbcl/sbcl/contrib/asdf-install/asdf-install.asd,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- asdf-install.asd 14 Aug 2003 14:06:26 -0000 1.2
+++ asdf-install.asd 16 Aug 2003 20:38:40 -0000 1.3
@@ -8,7 +8,7 @@
;;; this is appalling misuse of asdf. please don't treat it as any
;;; kind of example. this shouldn't be a compile-op, or if it is, should
-;;; define output-files properly instead oif leaving it be the fasl
+;;; define output-files properly instead of leaving it be the fasl
(defclass exe-file (cl-source-file) ())
(defmethod perform :after ((o compile-op) (c exe-file))