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:
Christopher Faylor
2000-09-07 16:23:51 +00:00
parent c1644acb23
commit 29ac7f89e3
24 changed files with 371 additions and 307 deletions

View File

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