]> granicus.if.org Git - python/commitdiff
Merged revisions 85140 via svnmerge from
authorBrian Curtin <brian.curtin@gmail.com>
Fri, 1 Oct 2010 15:09:53 +0000 (15:09 +0000)
committerBrian Curtin <brian.curtin@gmail.com>
Fri, 1 Oct 2010 15:09:53 +0000 (15:09 +0000)
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
Misc/NEWS
Modules/signalmodule.c

index 7aa03ef8920561bc33b73365a904f3cadda0d266..1f15ff76fe81e8fa7a2286de82448d3d18d4ad59 100644 (file)
@@ -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)
index b6cfbebb559eeaeed35c76930b8be0eb60257984..231ca55ed2ba0a9b884f5f42a29ea3ea63d7b2df 100644 (file)
--- 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.
 
index c2e762abbe8bf89a76694165cf512bf6e101c419..1aa86f44f78ae5e8b83203165911c148f9d4fb3b 100644 (file)
@@ -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;