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:
Diffstat (limited to 'winsup/cygwin/fhandler_tty.cc')
-rw-r--r--winsup/cygwin/fhandler_tty.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index 56ef28020..4ef3457e8 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -1614,10 +1614,9 @@ extern "C" BOOL WINAPI GetNamedPipeClientProcessId (HANDLE, PULONG);
OSes there's no function to check for the PID of the client process so
we have to trust the client side.
- Since there's
- always only one pipe instance, there's a chance that clients have to
- wait to connect to the master control pipe. Therefore the client calls
- to CallNamedPipe should have a big enough timeout value. For now this
+ Since there's always only one pipe instance, there's a chance that clients
+ have to wait to connect to the master control pipe. Therefore the client
+ calls to CallNamedPipe should have a big enough timeout value. For now this
is 500ms. Hope that's enough. */
DWORD
@@ -1635,7 +1634,7 @@ fhandler_pty_master::pty_master_thread ()
DWORD pid;
termios_printf ("Entered");
- while (!exit && ConnectNamedPipe (master_ctl, NULL))
+ while (!exit && (ConnectNamedPipe (master_ctl, NULL) || GetLastError () == ERROR_PIPE_CONNECTED))
{
pipe_reply repl = { NULL, NULL, 0 };
bool deimp = false;