* fhandler_tty.cc (fhandler_tty_slave::init): Add additional checks to

determine when a process should grab control of a tty's pgid.  Use
being_debugged() for consistency.
* debug.h (being_debugged): Remove vestige of win9x accommodation.
This commit is contained in:
Christopher Faylor 2010-09-20 20:25:50 +00:00
parent b64733135a
commit 73b6b43ed3
3 changed files with 15 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2010-09-20 Christopher Faylor <me+cygwin@cgf.cx>
* fhandler_tty.cc (fhandler_tty_slave::init): Add additional checks to
determine when a process should grab control of a tty's pgid. Use
being_debugged() for consistency.
* debug.h (being_debugged): Remove vestige of win9x accommodation.
2010-09-19 Christopher Faylor <me+cygwin@cgf.cx>
* wincap.h (wincaps::has_buggy_thread_startup): Declare.

View File

@ -20,8 +20,7 @@ details. */
#if !defined(_DEBUG_H_)
#define _DEBUG_H_
#define being_debugged() \
(IsDebuggerPresent () /* || GetLastError () == ERROR_PROC_NOT_FOUND*/)
#define being_debugged() (IsDebuggerPresent ())
#ifndef DEBUGGING
# define cygbench(s)

View File

@ -710,7 +710,13 @@ fhandler_tty_slave::init (HANDLE f, DWORD a, mode_t)
flags = O_RDWR;
int ret = open (flags);
if (ret && !cygwin_finished_initializing && !IsDebuggerPresent ())
/* We should only grab this when the parent process owns the pgid
(which could happen when a cygwin process starts a DOS process which
starts a cygwin process or when we are being started directly from a
windows process, e.g., from the CMD prompt. */
if (ret && !cygwin_finished_initializing && !being_debugged ()
&& (myself->ppid == 1 || myself->ppid == tc->getpgid ()))
{
/* This only occurs when called from dtable::init_std_file_from_handle
We have been started from a non-Cygwin process. So we should become