On a closer look:

((logger/log "map" @unique-offers)
            (alter unique-offers assoc offer-value streams))

should probably be

(do (logger/log "map" @unique-offers)
            (alter unique-offers assoc offer-value streams))

On Tue, Apr 26, 2011 at 9:55 PM, Jonathan Fischer Friberg <
odysso...@gmail.com> wrote:

> 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

Reply via email to