Threaded runtime (was Re: [Haskell-cafe] Project postmortem)

Joel Reymont joelr1 at gmail.com
Fri Dec 2 08:31:56 EST 2005


Simon,

On Dec 2, 2005, at 1:16 PM, Simon Marlow wrote:

> No - the runtime is completely single-threaded without -threaded.
> Blocking I/O is managed by the runtime.  With -threaded, blocking I/ 
> O is
> managed by a Haskell thread.  The programmer shouldn't see any
> difference in the behaviour of I/O.

I was going on this quote by Simon PJ:

--
It should be find to have lots of threads, esp if most of them are
asleep.  The only thing to watch out for is that GHC's runtime system
will consume one *OS* thread for each *blocked* foreign call.  So if you
have 10k threads each making a separate call to the OS to read from 10k
sockets, and they all block, you'll use 10k OS threads, and that will
probably fail.
--

Is this correct and if so how does it mesh with what you said above?

> Is the documentation for -threaded lacking?  I realise it's a bit  
> terse,
> but do you have any concrete suggestions for improving it?

Not at the moment but I'll think about it once I understand everything.
It could be worth summarizing every clarification in this thread.

	Thanks, Joel

--
http://wagerlabs.com/







More information about the Haskell-Cafe mailing list