Split out tty and shared_info stuff into their own headers and use throughout.
Include sys/termios.h for files which need it. * tty.h: New file. * shared_info.h: New file. * fhandler.h: Move inline methods that rely on tty stuff to fhandler_console.cc. * fhandler_tty.cc (fhandler_pty_master::process_slave_output): Set output_done_event immediately after reading data to speed up tty output processing. (process_output): Set write_error to errno or zero. (fhandler_tty_slave::write): Check previous write error prior to writing to slave end of pipe. This allows tty output to be slightly less synchronous. * fhandler_console.cc (fhandler_console::tcsetpgrp): Moved here from fhandler.h. (fhandler_console::set_input_state): Ditto.
This commit is contained in:
@ -511,6 +511,8 @@ public:
|
||||
#define release_output_mutex() \
|
||||
__release_output_mutex (__PRETTY_FUNCTION__, __LINE__);
|
||||
|
||||
class tty;
|
||||
class tty_min;
|
||||
class fhandler_termios: public fhandler_base
|
||||
{
|
||||
protected:
|
||||
@ -594,7 +596,7 @@ public:
|
||||
int tcsetattr (int a, const struct termios *t);
|
||||
int tcgetattr (struct termios *t);
|
||||
|
||||
int tcsetpgrp (const pid_t pid) { tc->pgid = pid; return 0; }
|
||||
int tcsetpgrp (const pid_t pid);
|
||||
|
||||
/* Special dup as we must dup two handles */
|
||||
int dup (fhandler_base *child);
|
||||
@ -609,11 +611,7 @@ public:
|
||||
void fixup_after_exec (HANDLE);
|
||||
void set_close_on_exec (int val);
|
||||
void fixup_after_fork (HANDLE parent);
|
||||
void set_input_state ()
|
||||
{
|
||||
if (TTYISSETF (RSTCONS))
|
||||
input_tcsetattr (0, &tc->ti);
|
||||
}
|
||||
void set_input_state ();
|
||||
};
|
||||
|
||||
class fhandler_tty_common: public fhandler_termios
|
||||
|
Reference in New Issue
Block a user