Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-09-13 22:20:52 +0400
committerChristopher Faylor <me@cgf.cx>2003-09-13 22:20:52 +0400
commita98a0011695d362f4f00b6ad66a30a2651c49e43 (patch)
tree389e2ac272da8570e49041318455ccfd79647b08 /winsup/utils/kill.cc
parent276448cf67102d31ccd1c5b4186ac84aeeabf9d2 (diff)
* kill.c (forcekill): Wait for process to terminate even if TerminateProcess
says it failed.
Diffstat (limited to 'winsup/utils/kill.cc')
-rw-r--r--winsup/utils/kill.cc7
1 files changed, 4 insertions, 3 deletions
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);