[Haskell-cafe] Can't figure out source of race condition when
droundy at darcs.net
Sun Nov 2 16:01:14 EST 2008
On Sun, Nov 02, 2008 at 09:15:25PM +0100, Marc Weber wrote:
> On Mon, Nov 03, 2008 at 01:02:12AM +1100, Rafal Kolanski wrote:
> > Rafal Kolanski.
> > -- Pass text to md5sum and drop the final " -" when returning
> > hashMD5 text = do
> > (inp,out,err,pid) <- runInteractiveProcess "md5sum"  Nothing Nothing
> > forkIO $ do
> > hPutStrLn inp text
> > hClose inp
> > exit <- waitForProcess pid
> > case exit of ExitFailure _ -> error "md5sum fail"
> > _ -> return ()
> > [...]
> Why do you use forkIO here? It's not necessary. The process will run in
> background on its own. ?
It looks to me like this code requires a forkIO, not in the writing to inp,
but rather in the reading of out and err. Otherwise, those buffers may
fill up and your process will hang...
More information about the Haskell-Cafe