Hello everyone, I am a beginner with clojure and I am playing around
with pcalls (I am using clojure 1.2.1).
I see different behavior if I run some code from inside the REPL or
launching it "form the command line".
I have the following code in a file called "test-pcalls.clj":
(let [waste-time (fn [label]
(dotimes [k 4]
(let [msg (str label " " k "\n")]
(Thread/sleep 2000)
(print msg))))]
(dorun (pcalls #(waste-time "A") #(waste-time "b"))))
This just creates the function 'waste-time' which slowly (2 seconds at
a time) counts 0..3 and prints a label and the count each time. Two
copies of the function are then started in parallel with a different
label ("A" and "b")
I start clojure and then from the REPL I do (load-file "test-
pcalls.clj").
After 8 seconds (2 seconds x 4) I see the two sequences being printed
out all in one go.
First question I cannot find an aswer is: why do I see everything
printed together instead of one step a time?
Then I exit to the command line and then start clojure with the source
file:
clojure test-pcalls.clj
Again after 8 seconds I see the sequences printed out as above. But
now clojure hangs for a minute or so before returning to the command
prompt.
Can anyone explain this additional delay?
thanks
--
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