> Just keep them coming - it's nice to see somebody actively test the
> pure
> win32 backend, which is something I rarely do.
Well, there we go again :-) For a while I thought that everything was okay,
but then I ran into this:
Suppose something like this happens in the same tick (I know this will not
compile, heh).
fd = _open_osfhandle(socket());
ev_io_set(w, fd, EV_READ);
ev_io_start(w);
close(fd);
ev_io_stop(w);
This makes the following assertion fail:
assert (("libev: only socket fds supported in this configuration",
ioctlsocket (handle, FIONREAD, &arg) == 0));
I *think* the cause is this: ev_io_set/start adds the fd to the fdchange
list, close(fd) invalidates the fd, and ev_io_stop adds it another time. By
the time control returns to libev, the invalid fd is still on the change
list, so libev attempts to EV__IOFDSET it (can we consider that a verb?),
then bumps into the assert mentioned above.
Thanks,
- Bert
_______________________________________________
libev mailing list
[email protected]
http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev