Problem with select on windows
schmorp at schmorp.de
Mon Jan 24 22:23:59 CET 2011
On Mon, Jan 24, 2011 at 10:04:42PM +0100, Bert Belder <bertbelder at gmail.com> wrote:
> There is a problem with libev/select on windows. When a socket that is being
> observed with an ev_io watcher is closed, and the same fd gets re-used for
> another socket in the same tick (so before control to is returned to libev),
> the windows handle that is cached in ANFD->handle is not updated.
Actually, according to the code, the cached handle gets updated on every
start of an I/O watcher that has it's fd updated.
Are you sure you stop/set/start the watcher? (See "The special problem of
disappearing file descriptors").
If you do, can you make a small testcase the illustrates the problem? I
can't see how it can not update the cached fd (there might be a problem
with updating it, but that doesn't seem to be what you see).
> Is there a better solution to this problem?
> And if not, any chance that this patch could be landed?
It should just work, and if it doesn't, it needs to be made to work.
The choice of a Deliantra, the free code+content MORPG
-----==- _GNU_ http://www.deliantra.net
----==-- _ generation
---==---(_)__ __ ____ __ Marc Lehmann
--==---/ / _ \/ // /\ \/ / schmorp at schmorp.de
More information about the libev