   (event :foo :val 200) ; my-foo-handler gets called with:
                         ; {:event-type :foo :val 200}
   (remove-handler :foo ::bar-key)
-  (event :foo :val 200) ; my-foo-handler no longer called
-  "
+  (event :foo :val 200) ; my-foo-handler no longer called"
   [event-type key]
   (dosync
     (doseq [handler-ref* [event-handlers* sync-event-handlers*]]

        (alter handler-ref* assoc event-type (dissoc handlers key))))))

(defn clear-handlers
  "Remove all handlers for events of type event-type."
  [event-type]
  (dosync
    (alter event-handlers* dissoc event-type)

      (.execute thread-pool #(handle-event event-handlers* event)))))

(defn sync-event
  "Runs all event handlers synchronously regardless of whether they were
  declared as async or not. If handlers create new threads which generate
  events, these will revert back to the default behaviour of event (i.e. not
  forced sync). See event."
  [& args]
  (binding [FORCE-SYNC? true]
    (apply event args)))
