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

JD Conley jd.conley at coversant.net
Fri Apr 8 14:07:13 EDT 2005

> This patch intercepts the calls before they are added to the thread
> and uses a single thread for polling on all the sockets running
> asynchronous read/write. Once sockets are ready, it dispatches the
> item to the threadpool which will not be blocked. The patch also
> serializes read/write calls and allows for multiple Begin* calls on a
> given socket at the same time (this fails with current mono from SVN).

This patch is a good start, but this is a fairly serious issue.
Asynchronous IO is at the heart of high performance, scalable, network
servers.  Is anyone planning on integrating asynchronous sockets with IO
Completion Ports (on Windows) and whatever the equivalent is on the
other platforms?  There has to be a faster way with some kernel level
asynchronous APIs, rather than playing in user space.

Of course, maybe I just misunderstood this thread.  I haven't actually
looked at the code that does this work.


More information about the Mono-devel-list mailing list