                  (- (System/currentTimeMillis) now))]
     ;; Timers aren't precise
     (is (< 19 @first @second 80))))
-
-;; Catching
-;; * Only one catch block gets invoked
-;; * On abort
-;;   * Immedietly check all registered handlers.
-;;   * Only a single handler gets invoked
-;;   * If no handler is invoked, do nothing.
-;;   * When matching handler registered, invoke
-;;   * When another matching handler registered, do nothing.
-;; * Finally callback gets called on success / abort


    (receive dval2 (fn [_ val _] (reset! res val)))
    (is (nil? @res))))

(deftest waiting-for-objects
  (let [dval1 :hello

(deftest calling-wait
  (let [dval (deferred)
        res  (atom nil)]
    (future
      (Thread/sleep 20)
      (put dval :hello))
