X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fpoll.c;h=7c52cb6a26a1ce3a16638426077515a2a05cffa3;hb=4f75229abcaac8c98a0086baf68007dbaa096ed2;hp=90d99d92dca5d7ce2f31097e4b8fc06a83aae245;hpb=b2e2010c7c902235b5efb5bd3c6529f61b093aa4;p=gnulib.git diff --git a/lib/poll.c b/lib/poll.c index 90d99d92d..7c52cb6a2 100644 --- a/lib/poll.c +++ b/lib/poll.c @@ -70,7 +70,7 @@ #define IsConsoleHandle(h) (((long) (h) & 3) == 3) static BOOL -IsSocketHandle(HANDLE h) +IsSocketHandle (HANDLE h) { WSANETWORKEVENTS ev; @@ -150,6 +150,8 @@ win32_compute_revents (HANDLE h, int *p_sought) if (avail) happened |= *p_sought & (POLLIN | POLLRDNORM); } + else if (GetLastError () == ERROR_BROKEN_PIPE) + happened |= POLLHUP; else { @@ -503,7 +505,7 @@ poll (pfd, nfd, timeout) if (sought) handle_array[nhandles++] = h; if (pfd[i].revents) - wait_timeout = 0; + timeout = 0; } }