diff options
| -rw-r--r-- | src/site.clj | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/site.clj b/src/site.clj index d58406c..4da77b4 100644 --- a/src/site.clj +++ b/src/site.clj @@ -41,11 +41,12 @@ (defn flush-inactive-users! [x] (doseq [[rid room] @rooms] (dosync - (let [users (room :users) - now (System/currentTimeMillis) - alive? (fn [[n u]] (> (u :last-seen) (- now *user-timeout*)))] + (let [users (room :users) + now (System/currentTimeMillis) + cutoff (- now *user-timeout*) + alive? (fn [[n u]] (> (u :last-seen) cutoff))] (ref-set users - (into {} (filter alive? @users)))))) + (into {} (filter alive? (ensure users))))))) (Thread/sleep *flusher-sleep*) (when *run-flusher* (send *agent* #'flush-inactive-users!)) @@ -158,14 +159,13 @@ (strip-empty-vals d))) (defn prepare-user-list [room] - (map process-user (sort-by #(% :nick) - (vals @(room :users))))) + ; Sorting is done on client + (map process-user (vals @(room :users)))) (defn updates [room since] - (let [m {"users" (prepare-user-list room) + (let [m {"users" (prepare-user-list room) "messages" (map process-message-for-json (new-messages room since))} - topic @(room :topic)] (if topic (assoc m "topic" topic) |
