You might have to use hGetContents, then waitForProcess, and then terminateProcess -- you can then check if the process is indeed terminated using getProcessExitCode.

On Wed, Sep 5, 2012 at 1:45 PM, Magicloud Magiclouds <magicloud.magiclouds@gmail.com> wrote:
Hi,
  I have code like this and it leaves lots of zombies of flow-export.
Then I add waitForProcess.... Well I do not know where to put it.
Before or after 'hGetContents' both make the program hung.

exportCSV :: FilePath -> IO [String]
exportCSV file = do
  csv_ <- withBinaryFile file ReadMode $ \i -> do
    (_, Just o, _, h) <- createProcess $ CreateProcess (RawCommand
"/usr/bin/flow-export" ["-f2"]) Nothing Nothing (UseHandle i)
CreatePipe Inherit True False
    hGetContents o
  return $ tail $ lines csv_

--
竹密岂妨流水过
山高哪阻野云飞

And for G+, please use magiclouds#gmail.com.

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