I don't know. However, given the situation I think (cond (empty? @unique-offers) (dosync ... alter ...) :else (logger/log "error"))
is better, since the change is more isolated. On Tue, Apr 26, 2011 at 9:45 PM, Zlatko Josic <zlatko.jo...@gmail.com>wrote: > Hi, > > I use cond in dosync but it doesn't work. Here is a function code: > > > (defn process-request > [offer args] > (logger/log "process called") > (let [offer-value (Double/parseDouble (:offer offer)) > out-queue (:out-queue args) > unique-offers (:unique-offers args) > all-offers (:all-offers args) > streams (:streams offer)] > (dosync > (cond > (empty? @unique-offers) > ((logger/log "map" @unique-offers) > (alter unique-offers assoc offer-value streams)) > :else (logger/log "error"))))) > > unique-offer is ref for map which is empty so condition (empty? > @unique-offers) is true. > Statement (alter unique-offers assoc offer-value streams) never changes > unique-offers map. > If I remove cond from function it works fine (The function has only dosyn > and alter). > > What am I doing wrong? > > Thanks > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en