diff options
Diffstat (limited to 'winsup/cygwin/poll.cc')
-rw-r--r-- | winsup/cygwin/poll.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/winsup/cygwin/poll.cc b/winsup/cygwin/poll.cc index 2b6f8a90a..17411a098 100644 --- a/winsup/cygwin/poll.cc +++ b/winsup/cygwin/poll.cc @@ -115,9 +115,8 @@ poll (struct pollfd *fds, nfds_t nfds, int timeout) So it looks like there's actually no good reason to return POLLERR. */ fds[i].revents |= POLLIN; - /* Handle failed connect. A failed connect implicitly sets - POLLOUT, if requested, but it doesn't set POLLIN. */ - if ((fds[i].events & POLLIN) + /* Handle failed connect. */ + if (FD_ISSET(fds[i].fd, write_fds) && (sock = cygheap->fdtab[fds[i].fd]->is_socket ()) && sock->connect_state () == connect_failed) fds[i].revents |= (POLLIN | POLLERR); |