X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fselect.c;h=bc0226642827aedf012cec20bc05794d25fed533;hb=14b6d70139486b63e66257aad1abe2a9615f4d96;hp=de4e3b4311aaaca442048199de7ae09c75c39116;hpb=441aa3044f43e5572f58c354f01e6bc070acd5c7;p=gnulib.git diff --git a/lib/select.c b/lib/select.c index de4e3b431..bc0226642 100644 --- a/lib/select.c +++ b/lib/select.c @@ -1,7 +1,7 @@ /* Emulation for select(2) Contributed by Paolo Bonzini. - Copyright 2008-2009 Free Software Foundation, Inc. + Copyright 2008-2010 Free Software Foundation, Inc. This file is part of gnulib. @@ -80,7 +80,7 @@ typedef DWORD (WINAPI *PNtQueryInformationFile) #define IsConsoleHandle(h) (((long) (h) & 3) == 3) static BOOL -IsSocketHandle(HANDLE h) +IsSocketHandle (HANDLE h) { WSANETWORKEVENTS ev; @@ -132,6 +132,8 @@ win32_poll_handle (HANDLE h, int fd, struct bitset *rbits, struct bitset *wbits, if (avail) read = TRUE; } + else if (GetLastError () == ERROR_BROKEN_PIPE) + ; else { @@ -246,7 +248,7 @@ rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds, wait_timeout = INFINITE; else { - wait_timeout = timeout->tv_sec + timeout->tv_usec / 1000; + wait_timeout = timeout->tv_sec * 1000 + timeout->tv_usec / 1000; /* select is also used as a portable usleep. */ if (!rfds && !wfds && !xfds)