wait for a disk read... The kernel most certainly does not busy wait for disks
to respond, so the only alternative is that the process that needs to wait
(and only that process) is put to sleep. In which case a second thread would
be unaffected.
Linux does not busy wait in the Kernel! (don't forget the kernel does read-ahead,
so it could be that read really does return 'immediately' and without any delay
apart from at the end of file - In which case asynchronous IO just slows you down
with extra context switches).
Keean.
Simon Marlow wrote:
On 19 January 2005 16:58, Keean Schupke wrote:
Simon Marlow wrote:
So this means even though the IO calls block, the other HaskellThis is what GHC does, if I understand you correctly. The thread running select() does so in its own OS thread, while another OS thread runs the Haskell code. As long as you use -threaded, that is. Oh, and before GHC 6.4 it was done a different way - the scheduler used to do the select() between running Haskell threads.
Cheers, Simon
threads (when run with -threaded) keep running?
Yes, unless the IO is to/from disk on a Unix system.
Cheers,
Simon
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
