From eccd4d910dc61d5ad8ccc9c62d3ab823b359aa9d Mon Sep 17 00:00:00 2001 From: Brian Curtin Date: Fri, 1 Oct 2010 15:09:53 +0000 Subject: [PATCH] Merged revisions 85140 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r85140 | brian.curtin | 2010-10-01 09:49:24 -0500 (Fri, 01 Oct 2010) | 4 lines Fix #10003. Add SIGBREAK to the set of valid signals on Windows. This fixes a regression noticed by bzr, introduced by issue #9324. ........ --- Lib/test/test_signal.py | 12 ++++++------ Misc/NEWS | 3 +++ Modules/signalmodule.c | 5 +++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py index 7aa03ef892..1f15ff76fe 100644 --- a/Lib/test/test_signal.py +++ b/Lib/test/test_signal.py @@ -212,13 +212,13 @@ class BasicSignalTests(unittest.TestCase): @unittest.skipUnless(sys.platform == "win32", "Windows specific") class WindowsSignalTests(unittest.TestCase): def test_issue9324(self): + # Updated for issue #10003, adding SIGBREAK handler = lambda x, y: None - signal.signal(signal.SIGABRT, handler) - signal.signal(signal.SIGFPE, handler) - signal.signal(signal.SIGILL, handler) - signal.signal(signal.SIGINT, handler) - signal.signal(signal.SIGSEGV, handler) - signal.signal(signal.SIGTERM, handler) + for sig in (signal.SIGABRT, signal.SIGBREAK, signal.SIGFPE, + signal.SIGILL, signal.SIGINT, signal.SIGSEGV, + signal.SIGTERM): + # Set and then reset a handler for signals that work on windows + signal.signal(sig, signal.signal(sig, handler)) with self.assertRaises(ValueError): signal.signal(-1, handler) diff --git a/Misc/NEWS b/Misc/NEWS index b6cfbebb55..231ca55ed2 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -523,6 +523,9 @@ Library Extension Modules ----------------- +- Issue #10003: Allow handling of SIGBREAK on Windows. Fixes a regression + introduced by issue #9324. + - Issue #8734: Avoid crash in msvcrt.get_osfhandle() when an invalid file descriptor is provided. Patch by Pascal Chambon. diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index c2e762abbe..1aa86f44f7 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -258,6 +258,11 @@ signal_signal(PyObject *self, PyObject *args) /* Validate that sig_num is one of the allowable signals */ switch (sig_num) { case SIGABRT: break; +#ifdef SIGBREAK + /* Issue #10003: SIGBREAK is not documented as permitted, but works + and corresponds to CTRL_BREAK_EVENT. */ + case SIGBREAK: break; +#endif case SIGFPE: break; case SIGILL: break; case SIGINT: break; -- 2.40.0