From: cgf Date: Wed, 1 Sep 2010 21:06:35 +0000 (+0000) Subject: * dcrt0.cc (dll_crt0_0): Remove myself settings. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=84ebd55cc853f87b38c6137800dd4e638da7bd24;p=pf3gnuchains%2Fpf3gnuchains4x.git * dcrt0.cc (dll_crt0_0): Remove myself settings. * fork.cc (fork): Set myself process_state * pinfo.cc (pinfo_init): Ditto. (pinfo::thisproc): Make sure any sendsig setting is correctly copied. * pinfo.h: Update copyright. Remove unused code. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index aa8ceab667..f75f55093b 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,13 @@ 2010-09-01 Christopher Faylor + * dcrt0.cc (dll_crt0_0): Remove myself settings. + * fork.cc (fork): Set myself process_state + * pinfo.cc (pinfo_init): Ditto. + (pinfo::thisproc): Make sure any sendsig setting is correctly copied. + * pinfo.h: Update copyright. Remove unused code. + +2010-09-01 Christopher Faylor + * cygthread.cc (cygthread::create): Fix incorrect use of name rather than __name. * cygthread.h (cygthread::cygthread): Create versions which eliminate diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index ecd9a6cb4d..c84b06f7bf 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -715,9 +715,6 @@ dll_crt0_0 () GetCurrentProcess (), &hMainThread, 0, false, DUPLICATE_SAME_ACCESS); - myself->process_state |= PID_ACTIVE; - myself->process_state &= ~PID_INITIALIZING; - OpenProcessToken (GetCurrentProcess (), MAXIMUM_ALLOWED, &hProcToken); set_cygwin_privileges (hProcToken); diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc index b942c72fc2..5a70c7b87b 100644 --- a/winsup/cygwin/fork.cc +++ b/winsup/cygwin/fork.cc @@ -619,7 +619,10 @@ fork () MALLOC_CHECK; if (ischild) - /* nothing to do */; + { + myself->process_state |= PID_ACTIVE; + myself->process_state &= ~(PID_INITIALIZING | PID_EXITED); + } else if (res < 0) { if (!grouped.error) diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index 106d3573e8..c2709ead11 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -62,6 +62,7 @@ pinfo::thisproc (HANDLE h) init (cygheap->pid, PID_IN_USE, h ?: INVALID_HANDLE_VALUE); procinfo->process_state |= PID_IN_USE; procinfo->dwProcessId = myself_initial.pid; + procinfo->sendsig = myself_initial.sendsig; wcscpy (procinfo->progname, myself_initial.progname); strace.hello (); debug_printf ("myself->dwProcessId %u", procinfo->dwProcessId); @@ -109,6 +110,8 @@ pinfo_init (char **envp, int envc) debug_printf ("Set nice to %d", myself->nice); } + myself->process_state |= PID_ACTIVE; + myself->process_state &= ~(PID_INITIALIZING | PID_EXITED); debug_printf ("pid %d, pgid %d", myself->pid, myself->pgid); } diff --git a/winsup/cygwin/pinfo.h b/winsup/cygwin/pinfo.h index 3e7e547dfc..bc2940942e 100644 --- a/winsup/cygwin/pinfo.h +++ b/winsup/cygwin/pinfo.h @@ -1,6 +1,7 @@ /* pinfo.h: process table info - Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Red Hat, Inc. + Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + Red Hat, Inc. This file is part of Cygwin. @@ -165,7 +166,6 @@ public: int operator == (char *x) const {return (char *) procinfo == x;} _pinfo *operator * () const {return procinfo;} operator _pinfo * () const {return procinfo;} - // operator bool () const {return (int) h;} void preserve () { destroy = false; } #ifndef _SIGPROC_H int remember () {system_printf ("remember is not here"); return 0;}