On Wed, Jul 27, 2011 at 11:44 AM, mc4924 <[email protected]> wrote:
> 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?

Buffering of I/O. Try using println, or adding (.flush *out*) after each print.

> 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?

Waiting for the pcalls thread pool to shut down, I expect.

-- 
Protege: What is this seething mass of parentheses?!
Master: Your father's Lisp REPL. This is the language of a true
hacker. Not as clumsy or random as C++; a language for a more
civilized age.

-- 
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

Reply via email to