[Mono-devel-list] PATCH: reworked async IO for Socket

Gonzalo Paniagua Javier gonzalo at ximian.com
Fri Apr 8 22:13:36 EDT 2005


On Fri, 2005-04-08 at 12:38 -0700, JD Conley wrote:
> > For windows, well, patches for using its asynch. IO functions are 
> > welcome :).
> 
> We'll see... I'm not very C proficient.  :)
> 
> > For the rest, aio_(read|write) are not always available and/or 
> > SIGEV_THREAD does not work. Even when SIGEV_THREAD works, the thread 
> > that calls the callback function will be killed if the callback takes 
> > "too much" time, which is not much. So we had to use another thread to
> 
> > actually invoke the managed callback (and the thread has to be from 
> > the threadpool, to behave like MS).
> > 
> > The code that we have right does not have any performance issue and 
> > works on any system that have select(). And we are just 'wasting' one 
> > thread for polling on all the sockets with ongoing async. operations.
> 
> Interesting.  May I suggest using a different threadpool than the static
> application pool?  With that you can manage the concurrency settings
> separately, and not block application thread pooling and async
> delegates.  I believe the MS implementation uses a VERY large IOCP
> threadpool for this.

Yes, that next in my TODO (after making the previous patch work on
windows).

-Gonzalo





More information about the Mono-devel-list mailing list