summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/select.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2001-11-01 23:48:34 +0000
committerChristopher Faylor <me@cgf.cx>2001-11-01 23:48:34 +0000
commit53f00290819bd294d31d12bb93e8e5e887ad3aef (patch)
treef106c6e3e9c62c567b4aa8e42c0327f7845d4fde /winsup/cygwin/select.cc
parent1229d4f4eeec60957897cbf851adff5f61ab4df5 (diff)
downloadcygnal-53f00290819bd294d31d12bb93e8e5e887ad3aef.tar.gz
cygnal-53f00290819bd294d31d12bb93e8e5e887ad3aef.tar.bz2
cygnal-53f00290819bd294d31d12bb93e8e5e887ad3aef.zip
* cygheap.h (cygheap_fdmanip::isopen): Set appropriate errno if fd not open.
* select.cc (fhandler_base::ready_for_read): Release an open guard mutex when exiting with an error condition. * syscalls.cc (_read): Check frequently for closed fd as a kludge until something better is invented.
Diffstat (limited to 'winsup/cygwin/select.cc')
-rw-r--r--winsup/cygwin/select.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index 2b807e388..bcfc56f02 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -1102,6 +1102,9 @@ fhandler_base::ready_for_read (int fd, DWORD howlong, int ignra)
}
}
+ if (get_guard () && !avail && me.read_ready)
+ ReleaseMutex (get_guard ());
+
select_printf ("read_ready %d, avail %d", me.read_ready, avail);
return avail;
}