    (let [options' (session/session-options options)]
      (fn [request]
        (safe-go request
-         (let [request' (session/session-request request options')]
-           (->
-             (handler request')
-             <!
-             (session/session-response request' options'))))))))+                (let [request' (session/session-request request options')]
+                  (->
+                    (handler request')
+                    <!
+                    (session/session-response request' options'))))))))
  The function may return false to allow the search for a handler to continue.

  Asynchronous handler functions should be careful to return a 500 response if there is
  a failure (e.g., a thrown exception).  For synchronous functions, a try block is provided
  to generate the 500 response if an exception is thrown.

  For a synchronous handler (which must have the :sync meta-data), the function
  is invoked in a thread, and its result wrapped in a channel (with nil converted to false).

  If no resource handler function has been identified, this function
  will return false (wrapped in a channel)."

  can be obtained without blocking."
  (:import (javax.servlet.http HttpServletResponse))
  (:require
    [clojure.core.async :refer [chan go >! <! <!! >!! thread put! take!]]
    [clojure.tools.logging :as l]
    [clout.core :as clout]
    [ring.middleware
