       (check-for-new-block-to-send found?))))
 
 (s/fdef block->parent!
-        :args (s/cat :message-loop-name ::specs/message-loop-name
+        :args (s/cat :logger ::log2/logger
+                     :log-state ::log2/state
                      :->parent ::specs/->parent
                      :send-buf ::specs/buf)
-        :ret any?)
+        :ret ::log2/state)
 (defn block->parent!
   "Actually send the message block to the parent"
   ;; Corresponds to line 404 under the sendblock: label
   [message-loop-name
+   logger
+   log-state
    ->parent
    ^bytes send-buf]
   {:pre [send-buf]}

            ::specs/send-buf-size]
     current-message-id ::specs/next-message-id
     :as outgoing} ::specs/outgoing
    :as state}]
  (let [pre-log (utils/pre-log message-loop-name)]
    ;; Really just for timing info
    (log/debug pre-log
               "Top of pre-calculate after-send")
    (assert next-block-queue
            (str pre-log
                 "No next-block-queue to tell us what to send\nAvailable:\n"

  ;; There used to be more involved in this
  (let [size (count send-buf)
        succeeded? (dfrd/future (->parent send-buf))
        triggerer (utils/pre-log message-loop-name)
        [caller-log-state internal-log-state] (log2/fork log-state ::block->parent!)]
    (dfrd/on-realized succeeded?
                      (fn [succeeded]
                        ;; If I'm going to set send-eof-processed,
