On Thu, 21 Sep 2006, George Brewster wrote:

> I'm just tried writing a function to allow convenient embedding of shell
> commands, but I'm running into behavior I don't really understand 
> somewhere at the intersection of lazy evaluation, IO, and threading.

You may also find some unwelcome surprises in the area of pipes and
buffered I/O, that aren't specifically about Haskell.  Are you on a
UNIX platform?

I "rewrote" your function by removing both instances of forkIO, and
it worked about like I expected.  (The last one encounters an error
"broken pipe" when it tries to write "there" to the "echo hi" shell
process, because that process exits instead of reading from its input.)

I can't say whether you really need forkIO, or whether it's really going
to do what you need - not only do I not know enough about the thread
model, neither do I know what you're really trying to do.

        Donn Cave, [EMAIL PROTECTED]

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to