diff options
Diffstat (limited to 'winsup/cygwin/fhandler_fifo.cc')
-rw-r--r-- | winsup/cygwin/fhandler_fifo.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/winsup/cygwin/fhandler_fifo.cc b/winsup/cygwin/fhandler_fifo.cc index 0e2d2bde4..d2b236d5c 100644 --- a/winsup/cygwin/fhandler_fifo.cc +++ b/winsup/cygwin/fhandler_fifo.cc @@ -22,6 +22,7 @@ #include "cygtls.h" #include "shared_info.h" #include "ntdll.h" +#include "cygwait.h" fhandler_fifo::fhandler_fifo (): fhandler_base_overlapped (), @@ -242,6 +243,14 @@ fhandler_fifo::wait (HANDLE h) case WAIT_OBJECT_0: debug_only_printf ("successfully waited for %s", what); return true; + case WAIT_SIGNALED: + debug_only_printf ("interrupted by signal while waiting for %s", what); + set_errno (EINTR); + return false; + case WAIT_CANCELED: + debug_only_printf ("cancellable interruption while waiting for %s", what); + pthread::static_cancel_self (); /* never returns */ + break; case WAIT_TIMEOUT: if (h == write_ready) { @@ -254,14 +263,6 @@ fhandler_fifo::wait (HANDLE h) return false; } break; - case WAIT_OBJECT_0 + 1: - debug_only_printf ("interrupted by signal while waiting for %s", what); - set_errno (EINTR); - return false; - case WAIT_OBJECT_0 + 2: - debug_only_printf ("cancellable interruption while waiting for %s", what); - pthread::static_cancel_self (); /* never returns */ - break; default: debug_only_printf ("unknown error while waiting for %s", what); __seterrno (); |