From 106e3acf59e11aae4d0ffe97492f7d4ecd6db5cb Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Tue, 31 May 2011 00:26:37 +0000 Subject: * dtable.cc (dtable::select_write): Add missing argument to debug_printf. * fhandler.cc (fhandler_base_overlapped::setup_overlapped): Explicitly set io_pending to false. (fhandler_base_overlapped::has_ongoing_io): Call GetOverlappedResult to force completion of I/O. (fhandler_base_overlapped::wait_overlapped): Rewrite to correctly deal with nonblocking reads and to make more race proof. (fhandler_base_overlapped::raw_write): Deal with new enum values. (fhandler_base_overlapped::raw_read): Ditto. Don't deal with ongoing I/O here since it makes no sense in the read context. * fhandler.h (enum wait_return): Add overlapped_unknown, overlapped_nonblocking_no_data. * pipe.cc (pipe): Add debugging output. --- winsup/cygwin/fhandler.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'winsup/cygwin/fhandler.h') diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index e8a503481..2e7f6b500 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -578,8 +578,10 @@ class fhandler_base_overlapped: public fhandler_base protected: enum wait_return { - overlapped_success = 0, + overlapped_unknown = 0, + overlapped_success, overlapped_signal, + overlapped_nonblocking_no_data, overlapped_error }; bool io_pending; -- cgit v1.2.3