Replacing select() in the non-threaded RTS?

Stefan O'Rear stefanor at
Thu May 31 00:27:27 EDT 2007

On Wed, May 30, 2007 at 09:21:36PM -0700, Bryan O'Sullivan wrote:
> I notice that select is a bit of a bottleneck in the non-threaded RTS 
> once lots of sockets are in play.  Between kernel and userspace, many a 
> cycle are wasted once we go past a few hundred clients.  On some 
> operating systems, the fixed nature of fd_set imposes a surprisingly low 
> ceiling on the maximum number of concurrently open file descriptors.
> I gather there's some kind of longish-term plan to build a more 
> pluggable RTS, but it seems like a nearer-term solution could be 
> implemented relatively cheaply, and wouldn't conflict with the ultimate 
> goal.
> Would the GHC team be interested in receiving a patch that replaced 
> select, where possible, with an operating system's native, and hopefully 
> faster, event wait mechanism?

I don't beleive the GHC team would be interested in receiving any
patches to the non-threaded RTS, since it is scheduled for removal in
6.8 IIRC (leaving only threaded).


More information about the Glasgow-haskell-users mailing list