diff options
Diffstat (limited to 'winsup/cygwin/fhandler_termios.cc')
-rw-r--r-- | winsup/cygwin/fhandler_termios.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc index 006da2474..486e47918 100644 --- a/winsup/cygwin/fhandler_termios.cc +++ b/winsup/cygwin/fhandler_termios.cc @@ -213,14 +213,18 @@ fhandler_termios::line_edit (const char *rptr, int nread, int always_accept) { if (c == tc->ti.c_cc[VSTOP]) { - tc->OutputStopped++; + if (!tc->OutputStopped) + { + tc->OutputStopped = 1; + acquire_output_mutex (INFINITE); + } continue; } else if (c == tc->ti.c_cc[VSTART]) { restart_output: tc->OutputStopped = 0; - SetEvent (restart_output_event); + release_output_mutex (); continue; } else if ((tc->ti.c_iflag & IXANY) && tc->OutputStopped) |