diff options
Diffstat (limited to 'winsup/cygwin/fhandler_console.cc')
-rw-r--r-- | winsup/cygwin/fhandler_console.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index e95cc0a9a..54d8da618 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -137,8 +137,13 @@ fhandler_console::read (void *pv, size_t buflen) DWORD nwait; w4[0] = h; - nwait = 2; - w4[1] = signal_arrived; + if (iscygthread ()) + nwait = 1; + else + { + w4[1] = signal_arrived; + nwait = 2; + } for (;;) { @@ -151,8 +156,7 @@ fhandler_console::read (void *pv, size_t buflen) case WAIT_OBJECT_0: break; case WAIT_OBJECT_0 + 1: - if (!iscygthread ()) - set_sig_errno (EINTR); + set_sig_errno (EINTR); return -1; default: __seterrno (); |