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 {