diff options
author | Benjamin Peterson <benjamin@python.org> | 2015-10-06 04:56:22 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2015-10-06 04:56:22 (GMT) |
commit | 15982aad2b09086b5d8819ed5dfb0ec6195fd41a (patch) | |
tree | 7a86e21a0cc6e7eecf9a7d26fba3c64b696769e5 /Lib | |
parent | 601953b67958572162d0ab7d3f24c07340ad9dbb (diff) | |
download | cpython-15982aad2b09086b5d8819ed5dfb0ec6195fd41a.zip cpython-15982aad2b09086b5d8819ed5dfb0ec6195fd41a.tar.gz cpython-15982aad2b09086b5d8819ed5dfb0ec6195fd41a.tar.bz2 |
reinitialize an Event's Condition with a regular lock (closes #25319)
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/lock_tests.py | 8 | ||||
-rw-r--r-- | Lib/threading.py | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py index 42a7d82..462ecef 100644 --- a/Lib/test/lock_tests.py +++ b/Lib/test/lock_tests.py @@ -388,6 +388,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 37aa3b8..80f809c 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -496,7 +496,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.""" |