Hi Peter,
> My suggestion is to do a I/O completion port
implementaion of MIO. I had
> started it about 2 years ago, got stopped when the
project has scalled down
> and we run with the select MIO.
Do you still have your old project files ?
I was thinking of this IOCP; the problem is that actually
this requires
rewriting also components using MIO such as router, c2s,
etc. as they
are using "recv", "send" as they assume
non-blocking I/O.
In case of async I/O (which is a case of IOCP) the
application design is
slightly different. Most important difference is that the
buffers need
to be provided to the API before the read, at the time we
requesting
async read operation. Moreover we won't be informed that the
data has
arrived, if we don't request read operation before.
So, it is more like making jabberd2 using async I/O at all,
regardless
of the platform, than making MIO IOCP for Windows.
For the moment quick & better replacement for mio_select
on Windows
would be using WSAAsyncSelect.. which works somehow more
less like
/dev/poll on Linux ;)
Anyway having jabberd2 using any async API probably will
improve its
performance on any platform.
Regards,
--
Adam
_______________________________________________
jabberd mailing list
jabberd jabberstudio.org
http:
//mail.jabber.org/mailman/listinfo/jabberd
|