From 4340c43955131ac445d4d6e9b5fee36b1168ed9c Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 22 Sep 2005 21:10:07 +0000 Subject: [PATCH] * pinfo.cc (set_myself): Call strace.hello unconditionally when DEBUGGING. (pinfo::init): Sleep and issue debugging output before looping when a PID_EXITED is found. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/pinfo.cc | 9 ++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 096304ed9..f1a607580 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2005-09-22 Christopher Faylor + + * pinfo.cc (set_myself): Call strace.hello unconditionally when + DEBUGGING. + (pinfo::init): Sleep and issue debugging output before looping when a + PID_EXITED is found. + 2005-09-22 Corinna Vinschen * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix copy/paste diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index f28d7155f..78964a486 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -54,7 +54,9 @@ set_myself (HANDLE h) myself->dwProcessId = GetCurrentProcessId (); GetModuleFileName (NULL, myself->progname, sizeof (myself->progname)); +#ifndef DEBUGGING if (!strace.active) +#endif strace.hello (); debug_printf ("myself->dwProcessId %u", myself->dwProcessId); myself.initialize_lock (); @@ -287,7 +289,12 @@ pinfo::init (pid_t n, DWORD flag, HANDLE h0) brief occurrence, so rather than introduce some kind of locking mechanism, just loop. */ if (!created && createit && (procinfo->process_state & PID_EXITED)) - goto loop; + { + debug_printf ("looping because pid %d, procinfo->pid %d, procinfo->dwProcessid %u has PID_EXITED set", + n, procinfo->pid, procinfo->dwProcessId); + low_priority_sleep (0); + goto loop; + } if (!created) /* nothing */;