* pinfo.cc (_pinfo::set_ctty): Revert 2012-02-07 change to skip function if tty
in question == our ctty. * syscalls.cc (setsid): Avoid two function calls. * dtable.cc (dtable::dup_worker): Remove debugging. * init.cc (search_for): Calculate for every new process rather than using shared value. (threadfunc_ix): Fill in for ever new process rather than sing shared value.
This commit is contained in:
parent
5401796acf
commit
4eb5175d90
|
@ -1,3 +1,17 @@
|
||||||
|
2012-02-14 Christopher Faylor <me.cygwin2012@cgf.cx>
|
||||||
|
|
||||||
|
* pinfo.cc (_pinfo::set_ctty): Revert 2012-02-07 change to skip
|
||||||
|
function if tty in question == our ctty.
|
||||||
|
|
||||||
|
* syscalls.cc (setsid): Avoid two function calls.
|
||||||
|
|
||||||
|
* dtable.cc (dtable::dup_worker): Remove debugging.
|
||||||
|
|
||||||
|
* init.cc (search_for): Calculate for every new process rather than
|
||||||
|
using shared value.
|
||||||
|
(threadfunc_ix): Fill in for ever new process rather than sing shared
|
||||||
|
value.
|
||||||
|
|
||||||
2012-02-14 Corinna Vinschen <corinna@vinschen.de>
|
2012-02-14 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* fhandler_disk_file.cc (fhandler_cygdrive::fstat): Don't bother to
|
* fhandler_disk_file.cc (fhandler_cygdrive::fstat): Don't bother to
|
||||||
|
|
|
@ -677,16 +677,8 @@ dtable::dup_worker (fhandler_base *oldfh, int flags)
|
||||||
|
|
||||||
/* The O_CLOEXEC flag enforces close-on-exec behaviour. */
|
/* The O_CLOEXEC flag enforces close-on-exec behaviour. */
|
||||||
newfh->set_close_on_exec (!!(flags & O_CLOEXEC));
|
newfh->set_close_on_exec (!!(flags & O_CLOEXEC));
|
||||||
debug_printf ("duped '%s' old %p, new %p", oldfh->get_name (), oldfh->get_io_handle (), newfh->get_io_handle ());
|
debug_printf ("duped '%s' old %p, new %p", oldfh->get_name (),
|
||||||
#ifdef DEBUGGING
|
oldfh->get_io_handle (), newfh->get_io_handle ());
|
||||||
debug_printf ("duped output_handles old %p, new %p",
|
|
||||||
oldfh->get_output_handle (),
|
|
||||||
newfh->get_output_handle ());
|
|
||||||
if (oldfh->archetype)
|
|
||||||
debug_printf ("duped output_handles archetype old %p, archetype new %p",
|
|
||||||
oldfh->archetype->get_output_handle (),
|
|
||||||
newfh->archetype->get_output_handle ());
|
|
||||||
#endif /*DEBUGGING*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return newfh;
|
return newfh;
|
||||||
|
|
|
@ -16,8 +16,8 @@ details. */
|
||||||
|
|
||||||
static DWORD _my_oldfunc;
|
static DWORD _my_oldfunc;
|
||||||
|
|
||||||
static char *search_for __attribute__((section (".cygwin_dll_common"), shared)) = (char *) cygthread::stub;
|
static char *search_for = (char *) cygthread::stub;
|
||||||
unsigned threadfunc_ix[8] __attribute__((section (".cygwin_dll_common"), shared));
|
unsigned threadfunc_ix[8];
|
||||||
|
|
||||||
static bool dll_finished_loading;
|
static bool dll_finished_loading;
|
||||||
#define OLDFUNC_OFFSET -1
|
#define OLDFUNC_OFFSET -1
|
||||||
|
|
|
@ -435,7 +435,7 @@ _pinfo::set_ctty (fhandler_termios *fh, int flags)
|
||||||
{
|
{
|
||||||
tty_min& tc = *fh->tc ();
|
tty_min& tc = *fh->tc ();
|
||||||
debug_printf ("old %s, ctty device number %p, tc.ntty device number %p flags & O_NOCTTY %p", __ctty (), ctty, tc.ntty, flags & O_NOCTTY);
|
debug_printf ("old %s, ctty device number %p, tc.ntty device number %p flags & O_NOCTTY %p", __ctty (), ctty, tc.ntty, flags & O_NOCTTY);
|
||||||
if (fh && &tc && (ctty <= 0 || ctty != tc.ntty) && !(flags & O_NOCTTY))
|
if (fh && &tc && (ctty <= 0 || ctty == tc.ntty) && !(flags & O_NOCTTY))
|
||||||
{
|
{
|
||||||
ctty = tc.ntty;
|
ctty = tc.ntty;
|
||||||
if (cygheap->ctty != fh->archetype)
|
if (cygheap->ctty != fh->archetype)
|
||||||
|
@ -463,9 +463,7 @@ _pinfo::set_ctty (fhandler_termios *fh, int flags)
|
||||||
__ctty (), sid, pid, pgid, tc.getpgid (), tc.getsid ());
|
__ctty (), sid, pid, pgid, tc.getpgid (), tc.getsid ());
|
||||||
if (!cygwin_finished_initializing && !myself->cygstarted
|
if (!cygwin_finished_initializing && !myself->cygstarted
|
||||||
&& pgid == pid && tc.getpgid () && tc.getsid ())
|
&& pgid == pid && tc.getpgid () && tc.getsid ())
|
||||||
{
|
|
||||||
pgid = tc.getpgid ();
|
pgid = tc.getpgid ();
|
||||||
}
|
|
||||||
|
|
||||||
/* May actually need to do this:
|
/* May actually need to do this:
|
||||||
|
|
||||||
|
|
|
@ -1016,8 +1016,8 @@ setsid (void)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
myself->ctty = -2;
|
myself->ctty = -2;
|
||||||
myself->sid = getpid ();
|
myself->sid = myself->pid;
|
||||||
myself->pgid = getpid ();
|
myself->pgid = myself->pid;
|
||||||
if (cygheap->ctty)
|
if (cygheap->ctty)
|
||||||
cygheap->close_ctty ();
|
cygheap->close_ctty ();
|
||||||
syscall_printf ("sid %d, pgid %d, %s", myself->sid, myself->pgid, myctty ());
|
syscall_printf ("sid %d, pgid %d, %s", myself->sid, myself->pgid, myctty ());
|
||||||
|
|
Loading…
Reference in New Issue