Browse Source

BUG: Do not wait for children to exit when killing them. Sometimes they do not really die.

Brad King 21 years ago
parent
commit
b6fb2fe8f9
1 changed files with 2 additions and 6 deletions
  1. 2 6
      Source/kwsys/ProcessWin32.c

+ 2 - 6
Source/kwsys/ProcessWin32.c

@@ -1268,7 +1268,6 @@ int kwsysProcess_WaitForData(kwsysProcess* cp, char** data, int* length,
       {
       /* The process timeout has expired.  Kill the child now.  */
       kwsysProcess_Kill(cp);
-      cp->State = kwsysProcess_State_Expired;
       cp->TimeoutExpired = 1;
       cp->Killed = 0;
       return kwsysProcess_Pipe_None;
@@ -1409,11 +1408,8 @@ void kwsysProcess_Kill(kwsysProcess* cp)
       }
     }
 
-  /* Wait for windows to finish cleaning up the children.  */
-  for(i=0; i < cp->NumberOfCommands; ++i)
-    {
-    WaitForSingleObject(cp->ProcessInformation[i].hProcess, INFINITE);
-    }
+  /* We are killing the children and ignoring all data.  Do not wait
+     for them to exit.  */
 }
 
 /*--------------------------------------------------------------------------*/