mirror of
https://github.com/python/cpython.git
synced 2025-09-23 08:53:45 +00:00
set svn:eol-style on new file
This commit is contained in:
parent
85108e64a7
commit
4564c08b26
1 changed files with 42 additions and 42 deletions
|
@ -1,42 +1,42 @@
|
||||||
"""Script used to test os.kill on Windows, for issue #1220212
|
"""Script used to test os.kill on Windows, for issue #1220212
|
||||||
|
|
||||||
This script is started as a subprocess in test_os and is used to test the
|
This script is started as a subprocess in test_os and is used to test the
|
||||||
CTRL_C_EVENT and CTRL_BREAK_EVENT signals, which requires a custom handler
|
CTRL_C_EVENT and CTRL_BREAK_EVENT signals, which requires a custom handler
|
||||||
to be written into the kill target.
|
to be written into the kill target.
|
||||||
|
|
||||||
See http://msdn.microsoft.com/en-us/library/ms685049%28v=VS.85%29.aspx for a
|
See http://msdn.microsoft.com/en-us/library/ms685049%28v=VS.85%29.aspx for a
|
||||||
similar example in C.
|
similar example in C.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from ctypes import wintypes
|
from ctypes import wintypes
|
||||||
import signal
|
import signal
|
||||||
import ctypes
|
import ctypes
|
||||||
|
|
||||||
# Function prototype for the handler function. Returns BOOL, takes a DWORD.
|
# Function prototype for the handler function. Returns BOOL, takes a DWORD.
|
||||||
HandlerRoutine = wintypes.WINFUNCTYPE(wintypes.BOOL, wintypes.DWORD)
|
HandlerRoutine = wintypes.WINFUNCTYPE(wintypes.BOOL, wintypes.DWORD)
|
||||||
|
|
||||||
def _ctrl_handler(sig):
|
def _ctrl_handler(sig):
|
||||||
"""Handle a sig event and return 0 to terminate the process"""
|
"""Handle a sig event and return 0 to terminate the process"""
|
||||||
if sig == signal.CTRL_C_EVENT:
|
if sig == signal.CTRL_C_EVENT:
|
||||||
pass
|
pass
|
||||||
elif sig == signal.CTRL_BREAK_EVENT:
|
elif sig == signal.CTRL_BREAK_EVENT:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
print("UNKNOWN EVENT")
|
print("UNKNOWN EVENT")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
ctrl_handler = HandlerRoutine(_ctrl_handler)
|
ctrl_handler = HandlerRoutine(_ctrl_handler)
|
||||||
|
|
||||||
|
|
||||||
SetConsoleCtrlHandler = ctypes.windll.kernel32.SetConsoleCtrlHandler
|
SetConsoleCtrlHandler = ctypes.windll.kernel32.SetConsoleCtrlHandler
|
||||||
SetConsoleCtrlHandler.argtypes = (HandlerRoutine, wintypes.BOOL)
|
SetConsoleCtrlHandler.argtypes = (HandlerRoutine, wintypes.BOOL)
|
||||||
SetConsoleCtrlHandler.restype = wintypes.BOOL
|
SetConsoleCtrlHandler.restype = wintypes.BOOL
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Add our console control handling function with value 1
|
# Add our console control handling function with value 1
|
||||||
if not SetConsoleCtrlHandler(ctrl_handler, 1):
|
if not SetConsoleCtrlHandler(ctrl_handler, 1):
|
||||||
print("Unable to add SetConsoleCtrlHandler")
|
print("Unable to add SetConsoleCtrlHandler")
|
||||||
exit(-1)
|
exit(-1)
|
||||||
|
|
||||||
# Do nothing but wait for the signal
|
# Do nothing but wait for the signal
|
||||||
input()
|
input()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue