Duncan Coutts wrote:
The GHC run time system is designed to block without using CPU when all
threads are blocked doing IO.
Could you give more details? It would be useful to see the code or
preferably a small test case that demonstrates your problem. What
version of ghc are you using? Which OS are you running that on?
I'm using ghc-6.2.1 to compile in 32bit mode while i'm running the program in 64bit (Linux Kernel 2.6.5, amd64) with the 32bit emulation libraries. I don't think that is the problem spot because all other 32bit application are working fine.

mainLoop dev = do inp <- hGetLine dev
                            (runIndexCmd . parseInput) inp
                            return ()

This is called from main with:
           devHandle    <- openFile device ReadMode
           ...................
           catchJust asyncExceptions
                     (forever (mainLoop devHandle))
                     (cleanup devHandle)

forever = a >> forever a

The module that manages the device puts a process to sleep with interruptible_sleep_on( queue ) if there's no data available and wakes it up as soon as input arrives. As i said before this works when i use "cat".

_________________________________________________________________
MSN 8 helps eliminate e-mail viruses. Get 2 months FREE*. http://join.msn.com/?page=features/virus


_______________________________________________
Glasgow-haskell-users mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to