diff options
| author | Brian Curtin <brian.curtin@gmail.com> | 2010-04-02 23:26:06 (GMT) |
|---|---|---|
| committer | Brian Curtin <brian.curtin@gmail.com> | 2010-04-02 23:26:06 (GMT) |
| commit | e5aa886b4449c9b2db93591c58511ea3620c9b67 (patch) | |
| tree | aa333dc52ff6f99c1443b117b26c50a6afbdb7a9 /Lib/subprocess.py | |
| parent | a04c7a0f169caf09b181df05836e4cf175f37dbe (diff) | |
| download | cpython-e5aa886b4449c9b2db93591c58511ea3620c9b67.zip cpython-e5aa886b4449c9b2db93591c58511ea3620c9b67.tar.gz cpython-e5aa886b4449c9b2db93591c58511ea3620c9b67.tar.bz2 | |
Implement #1220212. Add os.kill support for Windows.
os.kill takes one of two newly added signals, CTRL_C_EVENT and
CTRL_BREAK_EVENT, or any integer value. The events are a special case
which work with subprocess console applications which implement a
special console control handler. Any other value but those two will
cause os.kill to use TerminateProcess, outright killing the process.
This change adds win_console_handler.py, which is a script to implement
SetConsoleCtrlHandler and applicable handler function, using ctypes.
subprocess also gets another attribute which is a necessary flag to
creationflags in Popen in order to send the CTRL events.
Diffstat (limited to 'Lib/subprocess.py')
| -rw-r--r-- | Lib/subprocess.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 59ed60c..e4c843d 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -990,6 +990,10 @@ class Popen(object): """ if sig == signal.SIGTERM: self.terminate() + elif sig == signal.CTRL_C_EVENT: + os.kill(self.pid, signal.CTRL_C_EVENT) + elif sig == signal.CTRL_BREAK_EVENT: + os.kill(self.pid, signal.CTRL_BREAK_EVENT) else: raise ValueError("Only SIGTERM is supported on Windows") |
