From 4710c53dcad1ebf3755f3efb9e80ac24bd72a9b2 Mon Sep 17 00:00:00 2001 From: darylm503 Date: Mon, 16 Apr 2012 22:12:42 +0000 Subject: AppPkg/Applications/Python: Add Python 2.7.2 sources since the release of Python 2.7.3 made them unavailable from the python.org web site. These files are a subset of the python-2.7.2.tgz distribution from python.org. Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution. Signed-off-by: daryl.mcdaniel@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Python-2.7.2/Lib/test/win_console_handler.py | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 AppPkg/Applications/Python/Python-2.7.2/Lib/test/win_console_handler.py (limited to 'AppPkg/Applications/Python/Python-2.7.2/Lib/test/win_console_handler.py') diff --git a/AppPkg/Applications/Python/Python-2.7.2/Lib/test/win_console_handler.py b/AppPkg/Applications/Python/Python-2.7.2/Lib/test/win_console_handler.py new file mode 100644 index 0000000000..bb68a85610 --- /dev/null +++ b/AppPkg/Applications/Python/Python-2.7.2/Lib/test/win_console_handler.py @@ -0,0 +1,49 @@ +"""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 +CTRL_C_EVENT and CTRL_BREAK_EVENT signals, which requires a custom handler +to be written into the kill target. + +See http://msdn.microsoft.com/en-us/library/ms685049%28v=VS.85%29.aspx for a +similar example in C. +""" + +from ctypes import wintypes, WINFUNCTYPE +import signal +import ctypes +import mmap +import sys + +# Function prototype for the handler function. Returns BOOL, takes a DWORD. +HandlerRoutine = WINFUNCTYPE(wintypes.BOOL, wintypes.DWORD) + +def _ctrl_handler(sig): + """Handle a sig event and return 0 to terminate the process""" + if sig == signal.CTRL_C_EVENT: + pass + elif sig == signal.CTRL_BREAK_EVENT: + pass + else: + print("UNKNOWN EVENT") + return 0 + +ctrl_handler = HandlerRoutine(_ctrl_handler) + + +SetConsoleCtrlHandler = ctypes.windll.kernel32.SetConsoleCtrlHandler +SetConsoleCtrlHandler.argtypes = (HandlerRoutine, wintypes.BOOL) +SetConsoleCtrlHandler.restype = wintypes.BOOL + +if __name__ == "__main__": + # Add our console control handling function with value 1 + if not SetConsoleCtrlHandler(ctrl_handler, 1): + print("Unable to add SetConsoleCtrlHandler") + exit(-1) + + # Awaken mail process + m = mmap.mmap(-1, 1, sys.argv[1]) + m[0] = '1' + + # Do nothing but wait for the signal + while True: + pass -- cgit v1.2.3