OSDN Git Service

* dcrt0.cc (dll_crt0_0): Remove myself settings.
authorcgf <cgf>
Wed, 1 Sep 2010 21:06:35 +0000 (21:06 +0000)
committercgf <cgf>
Wed, 1 Sep 2010 21:06:35 +0000 (21:06 +0000)
* 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.

winsup/cygwin/ChangeLog
winsup/cygwin/dcrt0.cc
winsup/cygwin/fork.cc
winsup/cygwin/pinfo.cc
winsup/cygwin/pinfo.h

index aa8ceab..f75f550 100644 (file)
@@ -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
index ecd9a6c..c84b06f 100644 (file)
@@ -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);
 
index b942c72..5a70c7b 100644 (file)
@@ -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)
index 106d357..c2709ea 100644 (file)
@@ -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);
 }
 
index 3e7e547..bc29409 100644 (file)
@@ -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;}