New submission from Igor <i...@prettysin.info>: Hello!
I see some 'skip' in test_os.py @unittest.skip("subprocesses aren't inheriting CTRL+C property") def test_CTRL_C_EVENT(self): I think, problem with calling SetConsoleCtrlHandler(NULL,0) in parent process, rather in child. If call SetConsoleCtrlHandler(NULL, 0). Calling SetConsoleCtrlHandler(ctrl_handler, 1) is not enough. Need first call SetConsoleCtrlHandler(NULL, 0). My patch for this test fixture: (may be, not so good, but it works) H:\usr\python27\Lib\test>diff win_console_handler.py win_console_handler.py_orig 26,27d25 < elif sig == signal.SIGINT: < pass 34,35d31 < def ctrl_handler_int(sig, obj): < sys.exit(1) 40d35 < NULL = ctypes.POINTER(ctypes.c_int)() 43,53d37 < # Calling this with NULL and FALSE causes the calling process to < # handle CTRL+C, rather than ignore it. This property isn't inherited < # by subprocesses, if it's created with CREATE_NEW_PROCESS_GROUP flag < SetConsoleCtrlHandler.argtypes = (ctypes.POINTER(ctypes.c_int), wintypes.B OOL) < if not SetConsoleCtrlHandler(NULL, 0): < print("Unable to restore SetConsoleCtrlHandler") < exit(-1) < < signal.signal(signal.SIGINT, ctrl_handler_int) < < SetConsoleCtrlHandler.argtypes = (HandlerRoutine, wintypes.BOOL) 57a42 > And on my machine (win2003 32bit): ... test_CTRL_BREAK_EVENT (__main__.Win32KillTests) ... ok test_CTRL_C_EVENT (__main__.Win32KillTests) ... ok test_kill_int (__main__.Win32KillTests) ... ok test_kill_sigterm (__main__.Win32KillTests) ... ok ---------------------------------------------------------------------- Ran 61 tests in 2.344s OK ---------- components: IO messages: 129761 nosy: iigor priority: normal severity: normal status: open title: suggestion for os.kill(pid,CTRL_C_EVENT) type: behavior versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue11361> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com