Author: Brian Kearns <bdkea...@gmail.com>
Branch: 
Changeset: r61309:8f52d162f0ee
Date: 2013-02-16 04:27 -0500
http://bitbucket.org/pypy/pypy/changeset/8f52d162f0ee/

Log:    try to clean up more on fork

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
@@ -85,9 +85,11 @@
         # enable_signals() if necessary.  That's a hack but I cannot
         # figure out a non-hackish way to handle thread+signal+fork :-(
         ident = rthread.get_ident()
-        old = self._signalsenabled.get(ident, 0)
-        if ident is not self._mainthreadident:
-            self._mainthreadident = ident
-            old += 1
-        self._signalsenabled.clear()
-        self._signalsenabled[ident] = old
+        val = self.getvalue()
+        sig = self._signalsenabled.get(ident, 0)
+        if ident != self._mainthreadident:
+            sig += 1
+        self._cleanup_()
+        self.setvalue(val)
+        self._signalsenabled[ident] = sig
+        self._mainthreadident = ident
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to