summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/lock_tests.py8
-rw-r--r--Lib/threading.py2
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS3
4 files changed, 13 insertions, 1 deletions
diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py
index b325bce..afd6873 100644
--- a/Lib/test/lock_tests.py
+++ b/Lib/test/lock_tests.py
@@ -394,6 +394,14 @@ class EventTests(BaseTestCase):
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
index 24cc911..4b4ec38 100644
--- a/Lib/threading.py
+++ b/Lib/threading.py
@@ -499,7 +499,7 @@ class Event:
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
index 28d25fd..3d257cd 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1352,6 +1352,7 @@ Ryan Smith-Roberts
Rafal Smotrzyk
Eric Snow
Dirk Soede
+Nir Soffer
Paul Sokolovsky
Evgeny Sologubov
Cody Somerville
diff --git a/Misc/NEWS b/Misc/NEWS
index 2c1a7c2..66bf5b9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -150,6 +150,9 @@ Library
- Issue #24881: Fixed setting binary mode in Python implementation of FileIO
on Windows and Cygwin. Patch from Akira Li.
+- Issue #25319: When threading.Event is reinitialized, the underlying condition
+ should use a regular lock rather than a recursive lock.
+
- Issue #21112: Fix regression in unittest.expectedFailure on subclasses.
Patch from Berker Peksag.