Commit 15982aad authored by Benjamin Peterson's avatar Benjamin Peterson

reinitialize an Event's Condition with a regular lock (closes #25319)

parent 601953b6
...@@ -388,6 +388,14 @@ class EventTests(BaseTestCase): ...@@ -388,6 +388,14 @@ class EventTests(BaseTestCase):
b.wait_for_finished() b.wait_for_finished()
self.assertEqual(results, [True] * N) 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): class ConditionTests(BaseTestCase):
""" """
......
...@@ -496,7 +496,7 @@ class Event: ...@@ -496,7 +496,7 @@ class Event:
def _reset_internal_locks(self): def _reset_internal_locks(self):
# private! called by Thread._reset_internal_locks by _after_fork() # private! called by Thread._reset_internal_locks by _after_fork()
self._cond.__init__() self._cond.__init__(Lock())
def is_set(self): def is_set(self):
"""Return true if and only if the internal flag is true.""" """Return true if and only if the internal flag is true."""
......
...@@ -1315,6 +1315,7 @@ Ryan Smith-Roberts ...@@ -1315,6 +1315,7 @@ Ryan Smith-Roberts
Rafal Smotrzyk Rafal Smotrzyk
Eric Snow Eric Snow
Dirk Soede Dirk Soede
Nir Soffer
Paul Sokolovsky Paul Sokolovsky
Evgeny Sologubov Evgeny Sologubov
Cody Somerville Cody Somerville
......
...@@ -100,6 +100,9 @@ Library ...@@ -100,6 +100,9 @@ Library
submit a coroutine to a loop from another thread, returning a submit a coroutine to a loop from another thread, returning a
concurrent.futures.Future. By Vincent Michel. concurrent.futures.Future. By Vincent Michel.
- Issue #25319: When threading.Event is reinitialized, the underlying condition
should use a regular lock rather than a recursive lock.
- Issue #25232: Fix CGIRequestHandler to split the query from the URL at the - Issue #25232: Fix CGIRequestHandler to split the query from the URL at the
first question mark (?) rather than the last. Patch from Xiang Zhang. first question mark (?) rather than the last. Patch from Xiang Zhang.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment