anchor.diff:    (defconstant +SIGSYS+    31))
   
   
  +(define-condition user-interrupt (condition)
  +  ((signal :initarg :signal
  +           :initform 0
  +           :reader user-interrupt-signal))
  +  (:report (lambda (condition stream)
  +             (format stream "~S signal ~D"
  +                     'user-interrupt
  +                     (user-interrupt-signal condition)))))
  +
  +
  +(defun yield-signals (signals)
  +  #+ccl
  +  (dolist (signum signals)
  +    (when (ccl:wait-for-signal signum 0)
  +      (signal 'user-interrupt :signal signum))))
  +
  +
   (defmacro signal-handler-bind (bindings &body body)
     "
   BINDINGS: is a list of lists of a signal number (evaluated, so you can
  
positive.code: (defpackage "COM.INFORMATIMAGO.SIGNAL"
    (:use "COMMON-LISP")
    (:export
     "SIGNAL-HANDLER-BIND" "CATCHING-SIGNALS"
     "+SIGHUP+" "+SIGINT+" "+SIGQUIT+" "+SIGILL+" "+SIGTRAP+"
     "+SIGABRT+" "+SIGBUS+" "+SIGFPE+" "+SIGKILL+" "+SIGUSR1+"
     "+SIGSEGV+" "+SIGUSR2+" "+SIGPIPE+" "+SIGALRM+" "+SIGTERM+"
  
negative.code: ;;;;AUTHORS
  ;;;;    <PJB> Pascal J. Bourguignon <pjb@informatimago.com>
  ;;;;MODIFICATIONS
  ;;;;    2012-02-20 <PJB> Added user-interrupt and yield-signals.
  ;;;;    2012-02-01 <PJB> Created.
  ;;;;BUGS
  ;;;;LEGAL
  