diff options
author | Christopher Faylor <me@cgf.cx> | 2010-09-01 21:06:36 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2010-09-01 21:06:36 +0000 |
commit | fc0e5071bcbc5670e9710c052f8ea99ab5d3c447 (patch) | |
tree | 597aaea996a1184c47b956aa9c121a138f066405 /winsup | |
parent | b9874a0c1409a238de44a2413b8a82875fd68084 (diff) | |
download | newlib-fc0e5071bcbc5670e9710c052f8ea99ab5d3c447.zip newlib-fc0e5071bcbc5670e9710c052f8ea99ab5d3c447.tar.gz newlib-fc0e5071bcbc5670e9710c052f8ea99ab5d3c447.tar.bz2 |
* 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.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 3 | ||||
-rw-r--r-- | winsup/cygwin/fork.cc | 5 | ||||
-rw-r--r-- | winsup/cygwin/pinfo.cc | 3 | ||||
-rw-r--r-- | winsup/cygwin/pinfo.h | 4 |
5 files changed, 17 insertions, 6 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index aa8ceab..f75f550 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,13 @@ 2010-09-01 Christopher Faylor <me+cygwin@cgf.cx> + * 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 <me+cygwin@cgf.cx> + * 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 ecd9a6c..c84b06f 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 b942c72..5a70c7b 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 106d357..c2709ea 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 3e7e547..bc29409 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;} |