On Dec 18, 10:01 pm, Randall R Schulz <rsch...@sonic.net> wrote: > > > My question was not precise enough. I meant why can the parent > > process - the Clojure program - terminate before all all the output > > has been passed through. > > Because it can terminate whenever it wants to. Child processes do not > place any constraints upon their parents, at least not on Unix systems.
I understand that the parent process can terminate whenever it wants. But in my program the "copy" function recurs over readLine until it returns null/nil, so it should read until the end of the output from the child process. And the calling thread waits for the completion of the agent functions with (await ...). The main thread should not come out of the (await ...) until both agent functions have copied their whole stream... But somehow the "copy" function is interrupted when the child process terminates. Maybe the missing piece is how your (cat-stream ...) function works, which is not included in your listing. How does it copy the data? Regards Stephan --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---