> This patch intercepts the calls before they are added to the thread pool > and uses a single thread for polling on all the sockets running > asynchronous read/write. Once sockets are ready, it dispatches the work > 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. JD _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list