From 7fc7ee1726dbe3e443266c669b23a816e87fd85d Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 28 Jun 2009 19:27:15 +0000 Subject: [PATCH] * select.cc (peek_pipe): Use has_ongoing_io() to determine if the pipe is ready for writing rather than performing brute-force checks. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/select.cc | 4 +--- 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,3 +1,8 @@ +2009-06-28 Christopher Faylor + + * 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 * fhandler.h (fhandler_base::has_ongoing_io): Declare new function. 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 {