OSDN Git Service

* tty.cc (tty_list::terminate): Guard releasing the tty with tty_mutex.
authorcorinna <corinna>
Tue, 14 Dec 2004 17:19:20 +0000 (17:19 +0000)
committercorinna <corinna>
Tue, 14 Dec 2004 17:19:20 +0000 (17:19 +0000)
(tty::init): Set master_pid to 0.

winsup/cygwin/ChangeLog
winsup/cygwin/tty.cc

index 41bacc9..67d9664 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-14  Corinna Vinschen  <corinna@vinschen.de>
+
+       * tty.cc (tty_list::terminate): Guard releasing the tty with tty_mutex.
+       (tty::init): Set master_pid to 0.
+
 2004-12-14  Thomas Wolff  <towo@computer.org>
 
        * fhandler_console.cc (read): Consider offset within scrolling
index ef77bd5..e2883fe 100644 (file)
@@ -151,6 +151,9 @@ tty_list::terminate (void)
          low_priority_sleep (200);
        }
 
+      if (WaitForSingleObject (tty_mutex, INFINITE) == WAIT_FAILED)
+       termios_printf ("WFSO for tty_mutex %p failed, %E", tty_mutex);
+
       termios_printf ("tty %d master about to finish", ttynum);
       ForceCloseHandle1 (t->to_slave, to_pty);
       ForceCloseHandle1 (t->from_slave, from_pty);
@@ -160,6 +163,8 @@ tty_list::terminate (void)
       char buf[20];
       __small_sprintf (buf, "tty%d", ttynum);
       logout (buf);
+
+      ReleaseMutex (tty_mutex);
     }
 }
 
@@ -369,6 +374,7 @@ tty::init (void)
   to_slave = NULL;
   from_slave = NULL;
   was_opened = 0;
+  master_pid = 0;
 }
 
 HANDLE