diff options
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/utils/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/utils/kill.cc | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index e6b79649b..2e930846c 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2003-09-13 Christopher Faylor <cgf@redhat.com> + + * kill.c (forcekill): Wait for process to terminate even if + TerminateProcess says it failed. + 2003-09-11 Christopher Faylor <cgf@redhat.com> * Makefile.in: Tweak mingw libz.a detection to make it more reliably diff --git a/winsup/utils/kill.cc b/winsup/utils/kill.cc index c5b61c616..dc654a236 100644 --- a/winsup/utils/kill.cc +++ b/winsup/utils/kill.cc @@ -133,11 +133,12 @@ forcekill (int pid, int sig, int wait) HANDLE h = OpenProcess (PROCESS_TERMINATE, FALSE, (DWORD) dwpid); if (!h) { - fprintf (stderr, "couldn't open pid %u\n", (unsigned) dwpid); - return; + fprintf (stderr, "couldn't open pid %u\n", (unsigned) dwpid); + return; } if (!wait || WaitForSingleObject (h, 200) != WAIT_OBJECT_0) - if (!TerminateProcess (h, sig << 8)) + if (!TerminateProcess (h, sig << 8) + && WaitForSingleObject (h, 200) != WAIT_OBJECT_0) fprintf (stderr, "couldn't kill pid %u, %u\n", (unsigned) dwpid, (unsigned) GetLastError ()); CloseHandle (h); |