   [messenger event completion-id {:keys [id channel] :as conn-info}]
   (if ((:short-circuitable? messenger) channel)
     (complete-message-short-circuit (short-circuit-ch messenger id :release-ch) completion-id)
-    (let [idle-strategy (:send-idle-strategy messenger)
-          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 (= ^long (offer-f) publication-backpressured?)
-        (.idle ^IdleStrategy idle-strategy 0)))))
+    (let [pub ^Publication (get-publication messenger conn-info)
+          unsafe-buffer (protocol/build-completion-msg-buf id completion-id)]
+      (send-pub messenger pub unsafe-buffer 0 protocol/completion-msg-length))))
 
 (defn retry-segment-short-circuit [ch retry-id]
   (when ch

(ns ^:no-doc onyx.messaging.aeron
  (:require [clojure.core.async :refer [chan >!! <!! alts!! timeout close! sliding-buffer]]
            [com.stuartsierra.component :as component]
            [taoensso.timbre :refer [fatal] :as timbre]
            [onyx.messaging.aeron.peer-manager :as pm]
            [onyx.messaging.protocol-aeron :as protocol]
            [onyx.messaging.common :as common]

      (pm/peer-channels id)
      ch-k))


(def ^:const publication-backpressured (long -2))
(def ^:const publication-not-connected (long -1))

(defn send-pub [messenger ^Publication pub buf start end]
  (let [offer-f (fn [] (.offer pub buf start end))]
    (while (let [result ^long (offer-f)]
             (or (= result publication-backpressured)
                 (= result publication-not-connected)))
      (.idle ^IdleStrategy (:send-idle-strategy messenger) 0))))

(defn send-messages-short-circuit [ch batch]
  (when ch
    (doseq [segment batch]
      (>!! ch segment))))

(defmethod extensions/send-messages AeronConnection
  [messenger event {:keys [id channel] :as conn-info} batch]
  (if ((:short-circuitable? messenger) channel)
    (send-messages-short-circuit (short-circuit-ch messenger (:id conn-info) :inbound-ch) batch)
    (let [pub ^Publication (get-publication messenger conn-info)
          [len unsafe-buffer] (protocol/build-messages-msg-buf (:compress-f messenger) id batch)]
      (send-pub messenger pub unsafe-buffer 0 len))))

(defn ack-segments-short-circuit [ch acks]
  (when ch
