Hi,
The good news is: I have the basic mechanism for async IO on sockets running. Requests can be scheduled and waited for, just like for regular files.
The bad news is: This is not enough for sockets.
Problems occur especially when sockets are closed, because the signalling of socket events uses a completely independent mechanism.
This leads to all sorts of strange behaviour, mostly to data loss because "FD_CLOSE" is signalled prematurely.
Sadly, this means for me: - The whole event signalling mechanism needs to be reworked so that it is consistent with overlapped IO. - Probably the async IO mechanism, too. It seems that it would be good to have a single IO queue where all events are handled, rather than several ones. Unlike now, also things like "peer closed socket" would be scheduled in that queue.
Well I need to think more. Currently, I am not even sure how exactly it _should_ work.
Martin