anchor.diff:    "Fires the callback attached to a notifier. Can be called from any thread."
     (let ((async-c (notifier-c notifier)))
       (uv:uv-async-send async-c)))
  +
  
positive.code:    free the notifier after it's triggered."
    (check-event-loop-running)
    (let* ((async-c (uv:alloc-handle :async))
           (notifier (make-instance 'notifier :c async-c :main-cb callback :event-cb event-cb
                                              :single-shot single-shot)))
      (let ((r (uv:uv-async-init (event-base-c *event-base*) async-c (cffi:callback async-cb))))
        (if (< r 0)
            (event-handler r event-cb :catch-errors t)
            (progn
              (attach-data-to-pointer async-c notifier)
              notifier)))))
  
  
negative.code: 
  (define-c-callback async-close-cb :void ((async-c :pointer))
    "Called when an async handle is closed."
    (free-pointer-data async-c :preserve-pointer t)
    (uv:free-handle async-c))
  
  (define-c-callback async-cb :void ((async-c :pointer))
    "Called when an async notifier is triggered."
    (let* ((notifier (deref-data-from-pointer async-c))
           (callbacks (get-callbacks async-c))
           (callback (getf callbacks :main-cb))
           (event-cb (getf callbacks :event-cb)))
      (catch-app-errors event-cb
        (unwind-protect
             (when callback (funcall callback))
  