   ;; Q: Is this a background-thread hidden sort of thing?
   ;; Maybe CIDER just isn't clever enough to spot it?
 
-  (is (not (= success ::timed-out)))
-  (is (not (= success ::drained)))
+  (is (not (= released-buffer ::timed-out)))
+  (is (not (= released-buffer ::drained)))
+  ;; This is just the tip of the iceberg showing
+  ;; why this approach was a terrible idea.
+  (is (= released-buffer released-buffer))
   ;; TODO: Make this more interesting.
   ;; Verify what we really got back
   ;; Send back a second block of data,

                     cookie
                     500
                     ::timeout))
    (throw (ex-info "Bad cookie"
                    {:problem cookie}))))

(defn wrote-cookie
  [clnt->srvr success]
  (println "Cookie sent to server. Waiting for vouch")
  (is success)
  (is (not= success ::timeout))
  (strm/try-take! clnt->srvr ::drained 500 ::timeout))

(defn vouch->server
  [client-chan vouch]
  ;; I don't have any real failure indication available
  ;; if something goes wrong with/on the server trying
  ;; to cope with this incoming vouch.
  ;; I almost need an error stream for dealing with exceptions.
  (if-not (or (= vouch ::drained)
              (= vouch ::timeout))
    (strm/try-put! (:chan client-chan)
                   {:message vouch
                    :host "tester"
                    :port 65536}
                   500
                   ::timeout)

  ;; 1. Start by writing 0 bytes
  ;; 2. Write, say, 480 bytes, send notification, then 320 more
  (let [write-notifier (strm/stream)
        ;; Real implementations really must use a
        ;; PooledByteBufAllocator.
        ;; Of course, that needs to get set up at the
        ;; outer pipeline level.
        ;; Client shouldn't care: when it's done
        ;; reading a buffer, it should call .release
        ;; and be done with it.
        ;; TODO: Make that happen (just not tonight)
        buffer (Unpooled/buffer 2048)
        release-notifier (strm/stream)
        read-notifier (strm/stream)
