diff options
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r-- | winsup/cygwin/sigproc.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 45b6d20a9..102310175 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -499,7 +499,7 @@ proc_terminate (void) zombies[i]->hProcess = NULL; } zombies[i]->process_state = PID_NOT_IN_USE; /* CGF FIXME - still needed? */ - zombies[i].release(); + // zombies[i].release(); // FIXME: this breaks older gccs for some reason } /* Disassociate my subprocesses */ @@ -530,10 +530,15 @@ proc_terminate (void) pchildren[i]->process_state |= PID_ORPHANED; } } - pchildren[i].release (); + // pchildren[i].release (); // FIXME: this breaks older gccs for some reason } nchildren = nzombies = 0; + /* Just zero sync_proc_subproc as the delete below seems to cause + problems for older gccs. */ + #if 1 + sync_proc_subproc = NULL; + #else /* Attempt to close and release sync_proc_subproc in a * non-raceable manner. */ @@ -541,8 +546,9 @@ proc_terminate (void) if (m) { sync_proc_subproc = NULL; - delete m; + // delete m; } + #endif } sigproc_printf ("leaving"); } |