From 492b5393a1aac7ea14b4b790c77bdd58461b75a7 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Sat, 9 Mar 2013 09:26:09 -0600 Subject: [PATCH] More idiomatic looping --- src/hottub/event.clj | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/hottub/event.clj b/src/hottub/event.clj index ee0cec4..0a02781 100644 --- a/src/hottub/event.clj +++ b/src/hottub/event.clj @@ -13,22 +13,18 @@ (defn post-event [event] (post-event-to *evq* event)) -(defn handle-next-event [evq & dispatchersInit] +(defn handle-next-event [evq & dispatchers] (dosync (let [queueold @evq] (if (seq queueold) (let [queuenew (pop queueold) event (peek queueold)] - (loop [dispatchers dispatchersInit] - (if (seq dispatchers) - (do - ((first dispatchers) event) - (recur (next dispatchers))) - (do - (ref-set evq queuenew) - true)))) + (doseq [dispatcher dispatchers] + (dispatcher event)) + (ref-set evq queuenew) + true) false)))) (defn handle-events [evq & dispatchers] (loop [more-events true] (if more-events (recur (apply handle-next-event evq dispatchers))))) -(defn get-evq [] *evq*) \ No newline at end of file +(defn get-evq [] *evq*)