* select.cc (cygwin_select): Make sure that 0 is returned when sel.wait times

out.
This commit is contained in:
Christopher Faylor 2011-12-08 20:24:33 +00:00
parent 2398bcaea4
commit 203f973789
2 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx>
* select.cc (cygwin_select): Make sure that 0 is returned when sel.wait
times out.
2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx> 2011-12-08 Christopher Faylor <me.cygwin2011@cgf.cx>
* include/sys/wait.h: Add in all c++ functions. * include/sys/wait.h: Add in all c++ functions.

View File

@ -147,12 +147,12 @@ cygwin_select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
break; break;
} }
else if ((sel.always_ready || ms == 0) else if ((sel.always_ready || ms == 0)
|| (res = sel.wait (r, w, e, ms)) == 0) || (res = sel.wait (r, w, e, ms)) >= 0)
{ {
copyfd_set (readfds, r, maxfds); copyfd_set (readfds, r, maxfds);
copyfd_set (writefds, w, maxfds); copyfd_set (writefds, w, maxfds);
copyfd_set (exceptfds, e, maxfds); copyfd_set (exceptfds, e, maxfds);
res = sel.poll (readfds, writefds, exceptfds); res = (res > 0) ? 0 : sel.poll (readfds, writefds, exceptfds);
} }
syscall_printf ("%R = select (%d, %p, %p, %p, %p)", res, maxfds, readfds, syscall_printf ("%R = select (%d, %p, %p, %p, %p)", res, maxfds, readfds,