Concurrent-Haskell in GHC

Jonathan Holt
Mon, 3 Feb 2003 15:27:09 -0800 (PST)

Hi guys!

I'm considering doing a server project in Haskell,
using GHC, and I'm having the old dilema of trying to
figure out the best way of handling multiple
concurrent connections: multiplexing or

I've started looking into the docs on GHC's
implementation of Concurrent-Haskell, and I got
confused about the architecture. Different sources
seem to indicate that it either:
- Uses one OS thread, and blocking IO calls will
therefore block all the Haskell-threads, or
- Uses one OS thread, occasionaly (50 times a second?)
calling select() to simulate blocking IO calls without
blocking other Haskell-threads, or
- Uses a pool of OS threads so that when a blocking IO
call is made, another thread takes over execution.

So which is right for the current stable GHC? And how
efficient/scalable is it?


Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.