anchor.diff:  
   (defun async-test ()
     (let* ((c (make-async-connection)))
  +    (defparameter *c* c)
       (unwind-protect
            (let ((ch (open-channel c :message-callback (lambda (msg)
                                                          (log:info "Msg: ~s" (babel:octets-to-string (cl-rabbit:message/body (cl-rabbit:envelope/message msg)))))))
  
positive.code:    (close-p       :type t
                    :initform nil
                    :accessor async-connection/close-p)
     (requests      :type list
                    :initform nil
                    :accessor async-connection/requests)
     (request-index :type integer
                    :initform 0
                    :accessor async-connection/request-index)
     (lock          :type t
                    :initform (bordeaux-threads:make-lock "Sync connection lock")
                    :reader async-connection/lock)))
  
  (defun process-unexpected-frame (conn)
    (simple-wait-frame conn))
  
negative.code:                   :reader async-connection/connection)
     (channels      :type vector
                    :initform (make-array (list 10)
                    :element-type '(or null async-channel)
                    :initial-element nil
                    :adjustable t
                    :fill-pointer nil)
                    :reader async-connection/channels)
     (cmd-fd        :type fixnum
                    :accessor async-connection/cmd-fd)
  