anchor.diff:                     (b-current async-connection/b-current))
         async-conn
       (let ((request-index (load-integer-from-fd (async-connection/cmd-fd-reader async-conn))))
  -      (log:trace "Got request index: ~s" request-index)
         (if request-index
             (bordeaux-threads:with-lock-held (b-lock)
  -            (log:trace "Opening gate")
               (when b-current
                 (error "The current handler index is not NIL: ~s" b-current))
               (setf b-current request-index)
               (bordeaux-threads:condition-notify b-condvar)
  -            (log:trace "Waiting for child to finish processing")
               (loop
                  while b-current
  -               do (bordeaux-threads:condition-wait b-condvar b-lock))
  -            (log:trace "Gate closed"))
  +               do (bordeaux-threads:condition-wait b-condvar b-lock)))
             ;; ELSE: When index is NIL, the connection should be stopped
             (signal 'stop-connection)))))
   
  
positive.code:         
          (iolib:set-error-handler event-base in-fd (lambda (&rest aa) (log:error "Got pipe error: ~s" aa)))
  
          (loop
             if (or (cl-rabbit::data-in-buffer conn)
                    (cl-rabbit::frames-enqueued conn))
  
negative.code:           (index (1- (async-channel/channel async-channel))))
        (assert (not (null (aref channels index))))
        (setf (aref channels index) nil)))
    (call-close-callbacks async-channel))
  
  (defun close-channel (async-channel &key code)
    (when (async-channel/close-p async-channel)
  