diff options
author | Christopher Faylor <me@cgf.cx> | 2011-12-09 03:19:41 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2011-12-09 03:19:41 +0000 |
commit | 8714982ceffd3775501059563d1cb33d83ea00ef (patch) | |
tree | 7adf69bf0e1c4c354185e4d48c8eea93bb0f962c /winsup/cygwin/select.cc | |
parent | 9b80fa0f92a03b317bca0c6f721627c9885791ae (diff) | |
download | cygnal-8714982ceffd3775501059563d1cb33d83ea00ef.tar.gz cygnal-8714982ceffd3775501059563d1cb33d83ea00ef.tar.bz2 cygnal-8714982ceffd3775501059563d1cb33d83ea00ef.zip |
* select.cc (cygwin_select): Fifth time is the charm.
Diffstat (limited to 'winsup/cygwin/select.cc')
-rw-r--r-- | winsup/cygwin/select.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc index e87e639f6..f409c6c5a 100644 --- a/winsup/cygwin/select.cc +++ b/winsup/cygwin/select.cc @@ -143,11 +143,14 @@ cygwin_select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, pthread::static_cancel_self (); /*NOTREACHED*/ default: - res = 0; + res = 1; break; } - else if ((sel.always_ready || ms == 0) - || (res = sel.wait (r, w, e, ms)) >= 0) + else if (sel.always_ready || ms == 0) + res = 0; + else + res = sel.wait (r, w, e, ms); + if (res >= 0) { copyfd_set (readfds, r, maxfds); copyfd_set (writefds, w, maxfds); |