[Mono-list] threads and Async Socket methods

Gonzalo Paniagua Javier gonzalo@ximian.com
Fri, 07 May 2004 20:02:48 +0200


El vie, 07-05-2004 a las 18:09, Kele Turnipseed escribió:
> I am not sure if the problem I am experiencing is the same as yours, but I
> will explain what appears to be happening to me.
> 
> I have a similar program: a TCP server with lots of data being relayed
> between the clients.  I am using async for accepting, sending and receiving.
> 
> When I have about 20 async calls which have not returned for a while, all
> subsequent calls lock up until the first calls finish.  This happens a lot
> when a client stops acknowledging packets, but is not registering as
> disconnected.  I can see a large send queue value in netstat when this
> happens.

The default socket implementation for asynchronous methods uses the
threadpool, which, by default, has 25 worker threads. If you use all of
them bad things may happen. I wrote something about that:
http://primates.ximian.com/~gonzalo/mono/blog/archives/2003_10.html

-Gonzalo