[Python-checkins] cpython (merge 3.5 -> default): merge 3.5 (#25319)

benjamin.peterson python-checkins at python.org
Tue Oct 6 01:01:52 EDT 2015


https://hg.python.org/cpython/rev/41f29bbf520d
changeset:   98551:41f29bbf520d
parent:      98547:d00c0544880a
parent:      98550:3719e842a7b1
user:        Benjamin Peterson <benjamin at python.org>
date:        Mon Oct 05 22:01:29 2015 -0700
summary:
  merge 3.5 (#25319)

files:
  Lib/test/lock_tests.py |  8 ++++++++
  Lib/threading.py       |  2 +-
  Misc/ACKS              |  1 +
  Misc/NEWS              |  3 +++
  4 files changed, 13 insertions(+), 1 deletions(-)


diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py
--- a/Lib/test/lock_tests.py
+++ b/Lib/test/lock_tests.py
@@ -394,6 +394,14 @@
         b.wait_for_finished()
         self.assertEqual(results, [True] * N)
 
+    def test_reset_internal_locks(self):
+        evt = self.eventtype()
+        old_lock = evt._cond._lock
+        evt._reset_internal_locks()
+        new_lock = evt._cond._lock
+        self.assertIsNot(new_lock, old_lock)
+        self.assertIs(type(new_lock), type(old_lock))
+
 
 class ConditionTests(BaseTestCase):
     """
diff --git a/Lib/threading.py b/Lib/threading.py
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -499,7 +499,7 @@
 
     def _reset_internal_locks(self):
         # private!  called by Thread._reset_internal_locks by _after_fork()
-        self._cond.__init__()
+        self._cond.__init__(Lock())
 
     def is_set(self):
         """Return true if and only if the internal flag is true."""
diff --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1353,6 +1353,7 @@
 Rafal Smotrzyk
 Eric Snow
 Dirk Soede
+Nir Soffer
 Paul Sokolovsky
 Evgeny Sologubov
 Cody Somerville
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -128,6 +128,9 @@
 - Issue #13248: Remove deprecated inspect.getargspec and inspect.getmoduleinfo
   functions.
 
+- Issue #25319: When threading.Event is reinitialized, the underlying condition
+  should use a regular lock rather than a recursive lock.
+
 IDLE
 ----
 

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list