             [konserve.core :refer [go-locked]]
             [clojure.java.io :as io]
             [hasch.core :refer [uuid]]
-
             [clojure.core.async :as async
              :refer [<!! <! >! timeout chan alt! go go-loop close! put!]]
             [clojure.edn :as edn]

  (:import [java.io
            DataInputStream DataOutputStream
            FileInputStream FileOutputStream
            ByteArrayInputStream]
           [java.nio.channels FileChannel AsynchronousFileChannel CompletionHandler]
           [java.nio ByteBuffer]
           [java.nio.file Files StandardCopyOption FileSystems Path OpenOption

                           (when (.exists f)
                             (let [fis (DataInputStream. (FileInputStream. f))]
                               (try
                                 (let [[key value] (-deserialize serializer read-handlers fis)]
                                   (<! (-assoc-in store key value))
                                   (.delete f))
                                 (catch Exception e
                                   (ex-info "Could not read key."
                                            {:type :read-error
