thread/socket behvior

Jeff Polakow jeff.polakow at
Thu Oct 9 15:04:26 EDT 2008

Don Stewart <dons at> wrote on 10/09/2008 02:56:02 PM:

> jeff.polakow:
> >    We have a server that accepts messages over a socket, spawning 
threads to
> >    process them. Processing these messages may cause other, outgoing
> >    connections, to be spawned. Under sufficient load, the main server 
> >    (i.e. the call to accept, followed by a forkIO), becomes 
> > 
> >    A smaller distilled testcase reveals that when sufficient socket 
> >    is occurring, an incoming connection may not be responded to until 
> >    connections have been cleared out of the way, despite the fact that 
> >    other connections are being handled by separate threads. One issue 
> >    we've been trying to figure out is where this behavior arises 
from-- the
> >    GHC rts, the Network library, the underlying C libraries.
> > 
> >    Have other GHC users doing applications with large amounts of 
> socket usage
> >    observed similar behavior and managed to trace back where it 
> >    from? Are there any particular architectural solutions that people 
> >    found to work well for these situations?
> Hey Jeff,
> Can you say which GHC you used, and whether you used the threaded
> runtime or non-threaded runtime?
Oops, forgot about that...

We used both ghc-6.8.3 and ghc-6.10.rc1 and we used the threaded runtime. 
We are running on a 64 bit linux machine using openSUSE 10.



This e-mail may contain confidential and/or privileged information. If you 
are not the intended recipient (or have received this e-mail in error) 
please notify the sender immediately and destroy this e-mail. Any 
unauthorized copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.
-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Glasgow-haskell-users mailing list