diff options
Diffstat (limited to 'winsup/cygwin/tty.cc')
-rw-r--r-- | winsup/cygwin/tty.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/winsup/cygwin/tty.cc b/winsup/cygwin/tty.cc index f0be2a534..baff0a4c2 100644 --- a/winsup/cygwin/tty.cc +++ b/winsup/cygwin/tty.cc @@ -136,8 +136,8 @@ tty_list::terminate (void) } termios_printf ("tty %d master about to finish", ttynum); - CloseHandle (t->to_slave); - CloseHandle (t->from_slave); + ForceCloseHandle1 (t->to_slave, to_pty); + ForceCloseHandle1 (t->from_slave, from_pty); WaitForSingleObject (tty_master->hThread, INFINITE); t->init (); @@ -355,12 +355,14 @@ tty::make_pipes (fhandler_pty_master *ptym) return FALSE; } + ProtectHandle1 (to_slave, to_pty); if (CreatePipe (&from_slave, &to_master, &sec_all, 0) == FALSE) { termios_printf ("can't create output pipe"); set_errno (ENOENT); return FALSE; } + ProtectHandle1 (from_slave, from_pty); termios_printf ("tty%d from_slave %p, to_slave %p", ntty, from_slave, to_slave); ptym->set_io_handle (from_slave); |