* fhandler.h (fhandler_tty_slave::close): Declare new function.
(fhandler_tty_slave::dup): Declare new function. (fhandler_tty_slave::fixup_after_function): Declare new function. * fhandler_tty.cc (fhandler_tty_slave_open): Only increment fhandler_console::open_fhs when associated with a pty. (fhandler_tty_slave::close): Define new function. Decrement fhandler_console::open_fhs when associated with a pty. (fhandler_tty_slave::dup): Define new function. Increment fhandler_console::open_fhs when associated with a pty. (fhandler_tty_slave::fixup_after_fork): Define new function. Increment fhandler_console::open_fhs when associated with a pty.
This commit is contained in:
@@ -552,12 +552,27 @@ fhandler_tty_slave::open (path_conv *, int flags, mode_t)
|
||||
set_output_handle (to_master_local);
|
||||
|
||||
set_open_status ();
|
||||
fhandler_console::open_fhs++;
|
||||
if (!output_done_event)
|
||||
{
|
||||
fhandler_console::open_fhs++;
|
||||
termios_printf ("incremented open_fhs %d", fhandler_console::open_fhs);
|
||||
}
|
||||
termios_printf ("tty%d opened", ttynum);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_tty_slave::close ()
|
||||
{
|
||||
if (!output_done_event)
|
||||
{
|
||||
fhandler_console::open_fhs--;
|
||||
termios_printf ("decremeted open_fhs %d", fhandler_console::open_fhs);
|
||||
}
|
||||
return fhandler_tty_common::close ();
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_tty_slave::cygserver_attach_tty (LPHANDLE from_master_ptr,
|
||||
LPHANDLE to_master_ptr)
|
||||
@@ -814,6 +829,17 @@ fhandler_tty_slave::read (void *ptr, size_t& len)
|
||||
return;
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_tty_slave::dup (fhandler_base *child)
|
||||
{
|
||||
if (!output_done_event)
|
||||
{
|
||||
fhandler_console::open_fhs++;
|
||||
termios_printf ("incremented open_fhs %d", fhandler_console::open_fhs);
|
||||
}
|
||||
return fhandler_tty_common::dup (child);
|
||||
}
|
||||
|
||||
int
|
||||
fhandler_tty_common::dup (fhandler_base *child)
|
||||
{
|
||||
@@ -1058,7 +1084,6 @@ fhandler_tty_common::close ()
|
||||
termios_printf ("CloseHandle (get_output_handle ()<%p>), %E", get_output_handle ());
|
||||
|
||||
inuse = NULL;
|
||||
fhandler_console::open_fhs++;
|
||||
termios_printf ("tty%d <%p,%p> closed", ttynum, get_handle (), get_output_handle ());
|
||||
return 0;
|
||||
}
|
||||
@@ -1202,6 +1227,17 @@ fhandler_tty_common::set_close_on_exec (int val)
|
||||
set_inheritance (output_handle, val);
|
||||
}
|
||||
|
||||
void
|
||||
fhandler_tty_slave::fixup_after_fork (HANDLE parent)
|
||||
{
|
||||
if (!output_done_event)
|
||||
{
|
||||
fhandler_console::open_fhs++;
|
||||
termios_printf ("incremented open_fhs %d", fhandler_console::open_fhs);
|
||||
}
|
||||
fhandler_tty_common::fixup_after_fork (parent);
|
||||
}
|
||||
|
||||
void
|
||||
fhandler_tty_common::fixup_after_fork (HANDLE parent)
|
||||
{
|
||||
|
Reference in New Issue
Block a user