Author: Brian Kearns <bdkea...@gmail.com>
Branch: 
Changeset: r61306:04926eb3ab15
Date: 2013-02-16 03:15 -0500
http://bitbucket.org/pypy/pypy/changeset/04926eb3ab15/

Log:    prevent signals from being disabled twice

diff --git a/pypy/module/__pypy__/test/test_signal.py 
b/pypy/module/__pypy__/test/test_signal.py
--- a/pypy/module/__pypy__/test/test_signal.py
+++ b/pypy/module/__pypy__/test/test_signal.py
@@ -3,6 +3,18 @@
 from pypy.module.thread.test.support import GenericTestThread
 
 
+class TestThreadSignal:
+    spaceconfig = dict(usemodules=['__pypy__', 'thread'])
+
+    def test_exit_twice(self, space):
+        from pypy.module.__pypy__.interp_signal import signals_exit, 
signals_enter
+        signals_exit(space)
+        try:
+            raises(KeyError, signals_exit, space)
+        finally:
+            signals_enter(space)
+
+
 class AppTestMinimal:
     spaceconfig = dict(usemodules=['__pypy__'])
 
diff --git a/pypy/module/thread/threadlocals.py 
b/pypy/module/thread/threadlocals.py
--- a/pypy/module/thread/threadlocals.py
+++ b/pypy/module/thread/threadlocals.py
@@ -57,10 +57,7 @@
 
     def disable_signals(self):
         ident = rthread.get_ident()
-        try:
-            new = self._signalsenabled[ident] - 1
-        except KeyError:
-            return
+        new = self._signalsenabled[ident] - 1
         if new > 0:
             self._signalsenabled[ident] = new
         else:
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to