anchor.diff:                               (%disconnect client)
                                (let ((condition (make-condition 'mqtt-error
                                                                 :format-control "Timed out writing")))
  +                               (handle-connection-error client condition)
                                  (reject condition))))
                        (%send-message client message)))))
             (if (null (write-finished-promise client))
  
positive.code:                      (setf (write-callback client)
                             #'(lambda ()
                                 (when delay
                                   (as:free-event delay)
                                   (setf (write-callback client) nil
                                         (write-finished-promise client) nil)
  
negative.code: 
  (defun %disconnect (client)
    (setf (message-handlers client) '())
    (when (ping-stopper client)
      (funcall (shiftf (ping-stopper client) nil)))
    (unless (as:streamish-closed-p (socket client))
      (as:close-socket (socket client)))
    (values))
  