From dde090583006604fe9eeb84a4c8793bf32311b7a Mon Sep 17 00:00:00 2001 From: usa Date: Fri, 11 Jul 2008 16:55:14 +0000 Subject: * win32/win32.c (rb_w32_select): shoudn't pass non-socket handle to original select(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- win32/win32.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'win32/win32.c') diff --git a/win32/win32.c b/win32/win32.c index d3ba3fa07b..11774cda16 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -2150,6 +2150,7 @@ rb_w32_select(int nfds, fd_set *rd, fd_set *wr, fd_set *ex, fd_set cons_rd; fd_set else_rd; fd_set else_wr; + fd_set except; int nonsock = 0; if (nfds < 0 || (timeout && (timeout->tv_sec < 0 || timeout->tv_usec < 0))) { @@ -2178,6 +2179,9 @@ rb_w32_select(int nfds, fd_set *rd, fd_set *wr, fd_set *ex, else_wr.fd_count = 0; nonsock += extract_fd(&else_wr, wr, is_not_socket); + except.fd_count = 0; + extract_fd(&except, ex, is_not_socket); // drop only + r = 0; if (rd && rd->fd_count > r) r = rd->fd_count; if (wr && wr->fd_count > r) r = wr->fd_count; -- cgit v1.2.3