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
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """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
 |