* dcrt0.cc (dll_crt0_1): Tweak debugging stuff.
* fhandler_tty.cc (fhandler_tty_common::close): Rearrange the code so that the master end of the input and output pipes is closed before signalling an EOF event to the slave. (fhandler_pty_master::close): Likewise.
This commit is contained in:
parent
ac6001df45
commit
0d339267ec
|
@ -1,3 +1,14 @@
|
||||||
|
2005-08-17 Christopher Faylor <cgf@timesys.com>
|
||||||
|
|
||||||
|
* dcrt0.cc (dll_crt0_1): Tweak debugging stuff.
|
||||||
|
|
||||||
|
2005-08-17 Pavel Tsekov <ptsekov@gmx.net>
|
||||||
|
|
||||||
|
* fhandler_tty.cc (fhandler_tty_common::close): Rearrange the code so
|
||||||
|
that the master end of the input and output pipes is closed before
|
||||||
|
signalling an EOF event to the slave.
|
||||||
|
(fhandler_pty_master::close): Likewise.
|
||||||
|
|
||||||
2005-08-14 Corinna Vinschen <corinna@vinschen.de>
|
2005-08-14 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* init.cc (respawn_wow64_process): Make inline function. Remove
|
* init.cc (respawn_wow64_process): Make inline function. Remove
|
||||||
|
|
|
@ -725,8 +725,9 @@ dll_crt0_1 (char *)
|
||||||
malloc_init ();
|
malloc_init ();
|
||||||
#ifdef CGF
|
#ifdef CGF
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (i)
|
const int n = 2 * 1024 * 1024;
|
||||||
cmalloc (HEAP_STR, 2000000);
|
while (i--)
|
||||||
|
small_printf ("cmalloc returns %p\n", cmalloc (HEAP_STR, n));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Initialize SIGSEGV handling, etc. */
|
/* Initialize SIGSEGV handling, etc. */
|
||||||
|
|
|
@ -1196,6 +1196,10 @@ fhandler_tty_common::close ()
|
||||||
termios_printf ("CloseHandle (input_mutex<%p>), %E", input_mutex);
|
termios_printf ("CloseHandle (input_mutex<%p>), %E", input_mutex);
|
||||||
if (!ForceCloseHandle (output_mutex))
|
if (!ForceCloseHandle (output_mutex))
|
||||||
termios_printf ("CloseHandle (output_mutex<%p>), %E", output_mutex);
|
termios_printf ("CloseHandle (output_mutex<%p>), %E", output_mutex);
|
||||||
|
if (!ForceCloseHandle1 (get_handle (), from_pty))
|
||||||
|
termios_printf ("CloseHandle (get_handle ()<%p>), %E", get_handle ());
|
||||||
|
if (!ForceCloseHandle1 (get_output_handle (), to_pty))
|
||||||
|
termios_printf ("CloseHandle (get_output_handle ()<%p>), %E", get_output_handle ());
|
||||||
|
|
||||||
/* Send EOF to slaves if master side is closed */
|
/* Send EOF to slaves if master side is closed */
|
||||||
if (!get_ttyp ()->master_alive ())
|
if (!get_ttyp ()->master_alive ())
|
||||||
|
@ -1206,10 +1210,6 @@ fhandler_tty_common::close ()
|
||||||
|
|
||||||
if (!ForceCloseHandle (input_available_event))
|
if (!ForceCloseHandle (input_available_event))
|
||||||
termios_printf ("CloseHandle (input_available_event<%p>), %E", input_available_event);
|
termios_printf ("CloseHandle (input_available_event<%p>), %E", input_available_event);
|
||||||
if (!ForceCloseHandle1 (get_handle (), from_pty))
|
|
||||||
termios_printf ("CloseHandle (get_handle ()<%p>), %E", get_handle ());
|
|
||||||
if (!ForceCloseHandle1 (get_output_handle (), to_pty))
|
|
||||||
termios_printf ("CloseHandle (get_output_handle ()<%p>), %E", get_output_handle ());
|
|
||||||
|
|
||||||
if (!hExeced)
|
if (!hExeced)
|
||||||
{
|
{
|
||||||
|
@ -1226,9 +1226,10 @@ fhandler_pty_master::close ()
|
||||||
while (accept_input () > 0)
|
while (accept_input () > 0)
|
||||||
continue;
|
continue;
|
||||||
#endif
|
#endif
|
||||||
fhandler_tty_common::close ();
|
|
||||||
|
|
||||||
if (!get_ttyp ()->master_alive ())
|
if (get_ttyp ()->master_alive ())
|
||||||
|
fhandler_tty_common::close ();
|
||||||
|
else
|
||||||
{
|
{
|
||||||
termios_printf ("freeing tty%d (%d)", get_unit (), get_ttyp ()->ntty);
|
termios_printf ("freeing tty%d (%d)", get_unit (), get_ttyp ()->ntty);
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -1241,6 +1242,9 @@ fhandler_pty_master::close ()
|
||||||
CloseHandle (get_ttyp ()->from_master);
|
CloseHandle (get_ttyp ()->from_master);
|
||||||
if (get_ttyp ()->to_master)
|
if (get_ttyp ()->to_master)
|
||||||
CloseHandle (get_ttyp ()->to_master);
|
CloseHandle (get_ttyp ()->to_master);
|
||||||
|
|
||||||
|
fhandler_tty_common::close ();
|
||||||
|
|
||||||
if (!hExeced)
|
if (!hExeced)
|
||||||
get_ttyp ()->init ();
|
get_ttyp ()->init ();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue