* fhandler.h (fhandler_termios::fixup_after_exec): New function.

* fhandler.cc (fhandler_termios::fixup_after_fork): New function.
Fixup output handle.
* fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output
handle is now fixed up in fhandler_termios::fixup_after_fork().
This commit is contained in:
Egor Duda 2001-03-12 21:27:42 +00:00
parent 79409dc0a2
commit e935fcf08a
4 changed files with 18 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2001-03-12 Egor Duda <deo@logos-m.ru>
* fhandler.h (fhandler_termios::fixup_after_exec): New function.
* fhandler.cc (fhandler_termios::fixup_after_fork): New function.
Fixup output handle.
* fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output
handle is now fixed up in fhandler_termios::fixup_after_fork().
2001-03-12 Egor Duda <deo@logos-m.ru>
* fhandler.h (fhandler_termios::fhandler_termios): Enable fixup

View File

@ -581,6 +581,8 @@ public:
bg_check_types bg_check (int sig);
virtual DWORD __acquire_output_mutex (const char *fn, int ln, DWORD ms) {return 1;}
virtual void __release_output_mutex (const char *fn, int ln) {}
void fixup_after_fork (HANDLE);
void fixup_after_exec (HANDLE parent) { fixup_after_fork (parent); }
};
enum ansi_intensity

View File

@ -308,3 +308,10 @@ fhandler_termios::line_edit (const char *rptr, int nread, int always_accept)
return input_done;
}
void
fhandler_termios::fixup_after_fork (HANDLE parent)
{
this->fhandler_base::fixup_after_fork (parent);
fork_fixup (parent, get_output_handle (), "output_handle");
}

View File

@ -1097,7 +1097,7 @@ fhandler_tty_common::set_close_on_exec (int val)
void
fhandler_tty_common::fixup_after_fork (HANDLE parent)
{
this->fhandler_base::fixup_after_fork (parent);
this->fhandler_termios::fixup_after_fork (parent);
if (output_done_event)
fork_fixup (parent, output_done_event, "output_done_event");
if (ioctl_request_event)
@ -1116,7 +1116,6 @@ fhandler_tty_common::fixup_after_fork (HANDLE parent)
}
if (input_available_event)
fork_fixup (parent, input_available_event, "input_available_event");
fork_fixup (parent, output_handle, "output_handle");
fork_fixup (parent, inuse, "inuse");
}