aboutsummaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/process.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/win32/process.c b/win32/process.c
index ada0d743f..9ad75f94f 100644
--- a/win32/process.c
+++ b/win32/process.c
@@ -587,6 +587,18 @@ static int terminate_process(pid_t pid, int exit_code)
587 return ret; 587 return ret;
588} 588}
589 589
590static int test_process(pid_t pid, int exit_code UNUSED_PARAM)
591{
592 HANDLE process;
593
594 if (!(process=OpenProcess(PROCESS_TERMINATE, FALSE, pid))) {
595 return -1;
596 }
597
598 CloseHandle(process);
599 return 0;
600}
601
590int kill(pid_t pid, int sig) 602int kill(pid_t pid, int sig)
591{ 603{
592 if (sig == SIGTERM) { 604 if (sig == SIGTERM) {
@@ -595,6 +607,9 @@ int kill(pid_t pid, int sig)
595 else if (sig == SIGKILL) { 607 else if (sig == SIGKILL) {
596 return kill_pids(pid, 128+sig, terminate_process); 608 return kill_pids(pid, 128+sig, terminate_process);
597 } 609 }
610 else if (sig == 0) {
611 return kill_pids(pid, 128+sig, test_process);
612 }
598 613
599 errno = EINVAL; 614 errno = EINVAL;
600 return -1; 615 return -1;