       (doseq [ack acks] 
         (let [unsafe-buffer (protocol/build-acker-message id (:id ack) (:completion-id ack) (:ack-val ack))
               offer-f (fn [] (.offer pub unsafe-buffer 0 protocol/ack-msg-length))]
-          (while (neg? ^long (offer-f))
-            (.idle ^IdleStrategy idle-strategy 0)))))))
+      (while (= ^long (offer-f) publication-backpressured?)
+        (.idle ^IdleStrategy idle-strategy 0)))))))
 
 (defn complete-message-short-circuit [ch completion-id]
   (>!! ch completion-id))

          pub ^Publication (get-publication messenger conn-info)
          unsafe-buffer (protocol/build-completion-msg-buf id completion-id)
          offer-f (fn [] (.offer pub unsafe-buffer 0 protocol/completion-msg-length))]
      (while (neg? ^long (offer-f))
        (.idle ^IdleStrategy idle-strategy 0)))))

(defn retry-message-short-circuit [ch retry-id]

  (doseq [segment batch]
    (>!! ch segment)))

(def ^:const publication-backpressured? (long -2))

(defmethod extensions/send-messages AeronConnection
  [messenger event {:keys [id channel] :as conn-info} batch]
  (if ((:short-circuitable? messenger) channel) 
