           (let [^ThreadInfo t-info (.getThreadInfo tmxb ^long t-id)
                 t-name (.getThreadName t-info)
                 cpu-time (if cpu-time-supported
-                           (float (/ (.getThreadCpuTime tmxb t-id) 1000000000.0))
+                           (double (/ (.getThreadCpuTime tmxb t-id) 1000000000.0))
                            -1)
                 user-time (if cpu-time-supported
-                            (float (/ (.getThreadUserTime tmxb t-id) 1000000000.0))
+                            (double (/ (.getThreadUserTime tmxb t-id) 1000000000.0))
                             -1)
                 waited (.getWaitedTime t-info)
                 blocked (.getBlockedTime t-info)]

                             (thread-info-fn) (println)
                             )
                1000)
    (run-once (executor) (fn [] (System/exit 0) 120000))))


        no-op false
        delta-cntr (delta-counter)
        stats-fn (fn []
                   (let [in (double (/ (.value in-cntr) 1000.0))
                         out (double (/ (.value out-cntr) 1000.0))]
                     (println
                       "time-delta:" (delta-cntr :time (System/currentTimeMillis)) "ms;"
                       "in:" in "k;"
                       "out:" out "k;"
                       "in-delta:" (delta-cntr :in in) "k/s;"
                       "out-delta:" (delta-cntr :out out) "k/s;")))
        out-fn (fn [_ _]
                 (.inc out-cntr))
;        in-data 24N
