Em Dom, 2008-09-14 às 14:52 -0700, Don Stewart escreveu: > marcot: > > Em Dom, 2008-09-14 às 16:07 -0300, Marco Túlio Gontijo e Silva escreveu: > > > Thanks, I got it to work running > > > > > > threadWaitRead stdInput > > > > > > before getChar. > > > > Now I've got another problem: > > > > > import Control.Concurrent > > > import System.IO > > > import System.Process > > > > > main :: IO () > > > main > > > = do > > > process <- runCommand "wget > > http://ftp.br.debian.org/debian/pool/main/g/ghc6/ghc6_6.8.2-6_amd64.deb" > > > forkIO > > > $ putStrLn "fork" > > > >> getChar >>= putChar > > > >> terminateProcess process > > > waitForProcess process > > > return () > > > > Not even fork is shown. Any hints? > > Daemonic threads. When the main thread exits, everything exits. Check > the docs for Control.Concurrent. > > You better use an MVar to ensure the main thread waits on its child.
I don't think this is the problem because the mais thread is not exiting. wget takes a lot of time to end, and I never really wait it to finish. I wanted to enable the user to interrupt it, but if it's finished, I don't want to wait for the user input anymore, so the child thread can exit with the main one. I just noticed that if I add a putStrLn "wait" before waitForProcess, it'll print wait and then fork. I couldn't understand why this happened, but I can't still pass through getChar to get to terminateProcess. Is it right to call getChar inside a forkIO? Greetings. -- marcot Página: http://marcotmarcot.iaaeee.org/ Blog: http://marcotmarcot.blogspot.com/ Correio: [EMAIL PROTECTED] XMPP: [EMAIL PROTECTED] IRC: [EMAIL PROTECTED] Telefone: 25151920 Celular: 98116720 Endereço: Rua Turfa, 639/701 Prado 30410-370 Belo Horizonte/MG Brasil _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe