summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2020-01-05 15:37:38 -0800
committerGiampaolo Rodola <g.rodola@gmail.com>2020-01-05 15:37:38 -0800
commit9eb72ab5fd56d422d067eb1ce1bfa59b59b29d03 (patch)
tree93d71a66551d23cb36e6bcfc69eea115061d14e7
parent18259d54fc86cc2eb031a3dfb5ca2432574eb266 (diff)
downloadpsutil-9eb72ab5fd56d422d067eb1ce1bfa59b59b29d03.tar.gz
move send_signal() code into windows module
-rw-r--r--psutil/__init__.py11
-rw-r--r--psutil/_pswindows.py12
2 files changed, 12 insertions, 11 deletions
diff --git a/psutil/__init__.py b/psutil/__init__.py
index bf34b429..d33d55e8 100644
--- a/psutil/__init__.py
+++ b/psutil/__init__.py
@@ -1211,16 +1211,7 @@ class Process(object):
if POSIX:
self._send_signal(sig)
else: # pragma: no cover
- if sig == signal.SIGTERM:
- self._proc.kill()
- # py >= 2.7
- elif sig in (getattr(signal, "CTRL_C_EVENT", object()),
- getattr(signal, "CTRL_BREAK_EVENT", object())):
- self._proc.send_signal(sig)
- else:
- raise ValueError(
- "only SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals "
- "are supported on Windows")
+ self._proc.send_signal(sig)
@_assert_pid_not_reused
def suspend(self):
diff --git a/psutil/_pswindows.py b/psutil/_pswindows.py
index b4dd9bc1..58c795bd 100644
--- a/psutil/_pswindows.py
+++ b/psutil/_pswindows.py
@@ -8,6 +8,7 @@ import contextlib
import errno
import functools
import os
+import signal
import sys
import time
from collections import namedtuple
@@ -865,7 +866,16 @@ class Process(object):
@wrap_exceptions
def send_signal(self, sig):
- os.kill(self.pid, sig)
+ if sig == signal.SIGTERM:
+ cext.proc_kill(self.pid)
+ # py >= 2.7
+ elif sig in (getattr(signal, "CTRL_C_EVENT", object()),
+ getattr(signal, "CTRL_BREAK_EVENT", object())):
+ os.kill(self.pid, sig)(sig)
+ else:
+ raise ValueError(
+ "only SIGTERM, CTRL_C_EVENT and CTRL_BREAK_EVENT signals "
+ "are supported on Windows")
@wrap_exceptions
def wait(self, timeout=None):