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

JD Conley jd.conley at coversant.net
Fri Apr 8 15:38:02 EDT 2005


> 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.

JD



More information about the Mono-devel-list mailing list