diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 51d09dde1..c4e89b583 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2004-03-16 Christopher Faylor + + * sigproc.cc (proc_terminate): Release sync_proc_subproc when done + terminating or suffer potential hangs. + (get_proc_lock): Reorganize debugging output slightly. + 2004-03-15 Christopher Faylor * cygtls.cc (_cygtls::fixup_after_fork): Just manipulate the signal diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index c786153a6..a04ea2f60 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -214,7 +214,7 @@ get_proc_lock (DWORD what, DWORD val) sigproc_printf ("sync_proc_subproc is NULL (2)"); return false; } - system_printf ("Couldn't aquire sync_proc_subproc for(%d,%d), %E, last %d", + system_printf ("Couldn't aquire sync_proc_subproc for(%d,%d), last %d, %E", what, val, lastwhat); return true; } @@ -538,6 +538,7 @@ proc_terminate (void) pchildren[i].release (); } nchildren = nzombies = 0; + sync_proc_subproc->release (); } sigproc_printf ("leaving"); }