* 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:
Christopher Faylor
2003-03-04 04:07:34 +00:00
parent b99f1bf031
commit c418817ed8
3 changed files with 55 additions and 2 deletions

View File

@@ -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)
{