* fhandler.h (fhandler_base::nohandle): Revert to standard implementation.

* dtable.cc (dtable::fixup_after_exec): Specifically reject releasing
nohandle() type fhandlers rather than relying on contents of io_handle.
(dtable::fixup_after_fork): Ditto.
* fhandler_termios.cc: Add includes necessary for definitions of have_execed
and have_execed_cygwin.
(fhandler_termios::sigflush): Don't flush console input when we've started a
non-Cygwin process.
This commit is contained in:
Christopher Faylor
2012-04-18 05:57:38 +00:00
parent c1d26a99cd
commit 55dcba98db
4 changed files with 20 additions and 11 deletions

View File

@ -19,6 +19,9 @@ details. */
#include "pinfo.h"
#include "tty.h"
#include "cygtls.h"
#include "dtable.h"
#include "cygheap.h"
#include "child_info.h"
#include "ntdll.h"
/* Common functions shared by tty/console */
@ -397,7 +400,8 @@ fhandler_termios::sigflush ()
/* FIXME: Checking get_ttyp() for NULL is not right since it should not
be NULL while this is alive. However, we can conceivably close a
ctty while exiting and that will zero this. */
if (get_ttyp () && !(get_ttyp ()->ti.c_lflag & NOFLSH))
if ((!have_execed || have_execed_cygwin) && get_ttyp ()
&& !(get_ttyp ()->ti.c_lflag & NOFLSH))
tcflush (TCIFLUSH);
}