invalid win32 accept() check in ev_pipe

Marc Lehmann schmorp at
Thu Nov 12 08:03:43 CET 2015

On Tue, Nov 10, 2015 at 11:28:26PM +0300, Vladimir Ivannikov <v.ivannikov at> wrote:
> There is tiny bug in win32 implementation of ev_pipe() caused by the fact
> that accept() returns SOCKET type which is actually UINT_PTR on windows
> which of couse unsigned and can't be
> signed compared with 0 (compiler will just optimized this check out)
> Patch is trivial:

Hi, thanks for your interest!

Your analysis is correct and the patch is trivial, but of course breaks
this libev when accept returns a file descriptor (not all accept
implementations return handles). Since optimising the check out shouldn't
cause an issue either, it's not even a bug, and thus, I'd probably just
leave it as is for the moment, as the code seems correct as it stands, and
probably will remove error chekcing altogether in that place.

                The choice of a       Deliantra, the free code+content MORPG
      -----==-     _GNU_    
      ----==-- _       generation
      ---==---(_)__  __ ____  __      Marc Lehmann
      --==---/ / _ \/ // /\ \/ /      schmorp at
      -=====/_/_//_/\_,_/ /_/\_\

More information about the libev mailing list