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

Reply via email to