anchor.diff:    (dolist (signo (copy-list (event-base-signal-handlers *event-base*)))
       (free-signal-handler signo))
     (setf (event-base-signal-handlers *event-base*) nil))
  +
  +(define-c-callback signal-close-cb :void ((watcher :pointer))
  +  "Called when a signal handler closes."
  +  (let* ((sig-data (deref-data-from-pointer watcher))
  +         (signo (getf sig-data :signo))
  +         (signo-pt (signal-pointer signo))
  +         (original-lisp-signal-handler (getf sig-data :original-handler)))
  +    (free-pointer-data watcher :preserve-pointer t)
  +    (uv:free-handle watcher)
  +    (cffi:foreign-funcall "signal" :int signo :pointer original-lisp-signal-handler :pointer)
  +    (free-pointer-data signo-pt :preserve-pointer t)))
  +
  +(define-c-callback signal-cb :void ((watcher :pointer) (signo :int))
  +  "All signals come through here."
  +  (let* ((callbacks (get-callbacks watcher))
  +         (signal-cb (getf callbacks :signal-cb))
  +         (event-cb (getf callbacks :event-cb))
  +         (sig-data (deref-data-from-pointer watcher))
  +         (ev (getf sig-data :ev)))
  +    (catch-app-errors event-cb
  +      (funcall signal-cb signo))))
   
   (define-c-callback lisp-signal-cb :void ((signo :int))
     "Generic callback for lisp signal handling."
  
positive.code:         (return-from signal-handler (event-handler res event-cb))))
      (save-callbacks watcher (list :signal-cb signal-cb
                                    :event-cb event-cb))
      (attach-data-to-pointer watcher (list :original-handler lisp-signal-handler))
      ;; make sure we can find the event/original handler from just the signo
      (attach-data-to-pointer signo-pt watcher)
      ;; add this signal to the list of active signals
  
negative.code:   "Clear a signal handler and unbind it."
    (when (find signo (event-base-signal-handlers *event-base*))
      (let* ((signo-pt (signal-pointer signo))
             (watcher (deref-data-from-pointer signo-pt)))
        (uv:uv-signal-stop watcher)
        (uv:uv-close watcher (cffi:callback signal-close-cb)))
      (setf (event-base-signal-handlers *event-base*) (remove signo (event-base-signal-handlers *event-base*)))))
  
  (defun clear-signal-handlers ()
  