I'm trying to learn a bit about Clojure and it's concurrency features but
I've hit an issue at an early point, where the same program exhibits
different behavior if run within the REPL or from a regular file. This is
the code I'm running:
(def foo (atom 0))
(pmap
(fn [_] (swap! foo inc))
(range 10000))
(println @foo)
When I run this inside the REPL, the (pmap ...) returns the whole sequence
with 10000 elements and the last line prints "10000", as expected. But when
I put this code in a file and run it as one of
java -cp clojure-1.4.0.jar clojure.main swap.clj
java -jar clojure-1.4.0-slim.jar swap.clj
then it will output "32" and the program won't terminate, I have to hit
CTRL+C to get control back to the console. Am I doing something wrong here?
I'm running Clojure 1.4.0 with Java 1.6.0_21 in Windows.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en