summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fork.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2013-12-18 03:58:11 +0000
committerChristopher Faylor <me@cgf.cx>2013-12-18 03:58:11 +0000
commit13621d2ef873ae1d7203592798803d378a2d3fa4 (patch)
tree2ecdb3e7b5d8db1fc54c4abf757a2fa82ca4a63f /winsup/cygwin/fork.cc
parent1147c2111d9d02133c7192b900ae7d0c74d2622c (diff)
downloadcygnal-13621d2ef873ae1d7203592798803d378a2d3fa4.tar.gz
cygnal-13621d2ef873ae1d7203592798803d378a2d3fa4.tar.bz2
cygnal-13621d2ef873ae1d7203592798803d378a2d3fa4.zip
* external.cc (fillout_pinfo): Remove nonsensical loop.
* fork.cc (frok::parent): When initializing pinfo for child new PID_NEW flag + actual defined constant rather than raw number. Don't set start_time here. * pinfo.cc (pinfo::thisproc): Use PID_NEW when initializing pinfo. Avoid checking h for NULL multiple times. Don't set start_time here. (pinfo_init): Aways set ppid last. Tweak strace output. (pinfo::init): Handle new PID_NEW flag. Wait for shared memory to contain useful information. Set start_time if PID_NEW. (_onreturn:h): Define as HANDLE rather than HANDLE *. (_onreturn::~onreturn): Accommodate h definition change. (_onreturn::no_close_handle): Rename from no_close_p_handle. Take a pinfo arg and set hProcess to h before zeroing. (winpids::add): Don't open a handle to our own process. Change logic associated with when a handle gets closed. Accommodate no_close_handle changes. (winpids::enum_processes): Simplify process enumeration loop. (winpids::set): Eliminate ill-considered malloc locking. * sigproc.cc (proc_subproc): Always set ppid last.
Diffstat (limited to 'winsup/cygwin/fork.cc')
-rw-r--r--winsup/cygwin/fork.cc4
1 files changed, 1 insertions, 3 deletions
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index 58b109fa9..faccb482c 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -344,7 +344,6 @@ frok::parent (volatile char * volatile stack_here)
syscall_printf ("CreateProcessW (%W, %W, 0, 0, 1, %y, 0, 0, %p, %p)",
myself->progname, myself->progname, c_flags, &si, &pi);
bool locked = __malloc_lock ();
- time_t start_time = time (NULL);
/* Remove impersonation */
cygheap->user.deimpersonate ();
@@ -412,7 +411,7 @@ frok::parent (volatile char * volatile stack_here)
fix_impersonation = false;
child_pid = cygwin_pid (pi.dwProcessId);
- child.init (child_pid, 1, NULL);
+ child.init (child_pid, PID_IN_USE | PID_NEW, NULL);
if (!child)
{
@@ -421,7 +420,6 @@ frok::parent (volatile char * volatile stack_here)
goto cleanup;
}
- child->start_time = start_time; /* Register child's starting time. */
child->nice = myself->nice;
/* Initialize things that are done later in dll_crt0_1 that aren't done