From 57b670586c611b70bf6043f39d9a650885b3c4ae Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 29 May 2011 15:30:27 +0000 Subject: [PATCH] * fhandler.cc (fhandler_overlapped::wait_overlapped): Make sure that I/O is cancelled on signal. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/fhandler.cc | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 3edbad158..ccc8412eb 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2011-05-29 Christopher Faylor + + * fhandler.cc (fhandler_overlapped::wait_overlapped): Make sure that + I/O is cancelled on signal. + 2011-05-28 Ryan Johnson * dll_init.cc (dll_list::alloc): Initialize dll::image_size. diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index ea0ca31b9..deb1ade16 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -1873,7 +1873,7 @@ fhandler_base_overlapped::wait_overlapped (bool inres, bool writing, DWORD *byte } } - if (res != overlapped_error) + if (res == overlapped_success) /* nothing to do */; else if (err == ERROR_HANDLE_EOF || err == ERROR_BROKEN_PIPE) { @@ -1887,7 +1887,7 @@ fhandler_base_overlapped::wait_overlapped (bool inres, bool writing, DWORD *byte HANDLE h = writing ? get_output_handle () : get_handle (); CancelIo (h); ResetEvent (get_overlapped ()); - if (err) + if (res == overlapped_error) __seterrno_from_win_error (err); *bytes = (DWORD) -1; }