Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-03-12 07:44:37 +0300
committerChristopher Faylor <me@cgf.cx>2000-03-12 07:44:37 +0300
commit774ea162116fcb08278c5efbe287848f5b5dd431 (patch)
treea124392461f0c8f99c127a7c5b6d880e85d145fd /winsup/cygwin/fhandler_console.cc
parent1e8b88023ceb35d74f74640bb5109f7b2a5f34e5 (diff)
* fhandler_console.cc (fhandler_console::read): Don't even think about breaking
on interrupt if executing in a "cygwin" thread. * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Streamline, simplify code. * sigproc.cc (sig_send): Remove debugging statement.
Diffstat (limited to 'winsup/cygwin/fhandler_console.cc')
-rw-r--r--winsup/cygwin/fhandler_console.cc12
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 ();