summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/select.cc4
2 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 24a66bef0..2fdb5b2c1 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2009-06-28 Christopher Faylor <me+cygwin@cgf.cx>
+ * select.cc (peek_pipe): Use has_ongoing_io() to determine if the pipe
+ is ready for writing rather than performing brute-force checks.
+
+2009-06-28 Christopher Faylor <me+cygwin@cgf.cx>
+
* fhandler.h (fhandler_base::has_ongoing_io): Declare new function.
* fhandler.cc (fhandler_base::has_ongoing_io): Define new function.
(fhandler_base::read_overlapped): Use has_ongoing_io to avoid writing
diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc
index 26cb3b40e..e9dac26ce 100644
--- a/winsup/cygwin/select.cc
+++ b/winsup/cygwin/select.cc
@@ -513,9 +513,7 @@ out:
else if (fh->get_device () == FH_PIPER)
select_printf ("%s, select for write on read end of pipe",
fh->get_name ());
- else if (fh->get_overlapped () && fh->get_overlapped ()->hEvent
- && WaitForSingleObject (fh->get_overlapped ()->hEvent, 0)
- != WAIT_OBJECT_0)
+ else if (fh->has_ongoing_io ())
s->write_ready = false;
else
{