[Python-checkins] bpo-31234: Try to fix lock_tests warning (#3557)

Victor Stinner webhook-mailer at python.org
Wed Sep 13 19:41:13 EDT 2017


https://github.com/python/cpython/commit/096ae3373abac2c8b3a26a3fe33cc8bd4cbccd4e
commit: 096ae3373abac2c8b3a26a3fe33cc8bd4cbccd4e
branch: master
author: Victor Stinner <victor.stinner at gmail.com>
committer: GitHub <noreply at github.com>
date: 2017年09月13日T16:41:08-07:00
summary:
bpo-31234: Try to fix lock_tests warning (#3557)
Try to fix the "Warning -- threading_cleanup() failed to cleanup 1
threads" warning in test.lock_tests: wait a little bit longer to give
time to the threads to complete.
Warning seen on test_thread and test_importlib.
files:
M Lib/test/lock_tests.py
diff --git a/Lib/test/lock_tests.py b/Lib/test/lock_tests.py
index 4fa154f734d..e8fa4f999a7 100644
--- a/Lib/test/lock_tests.py
+++ b/Lib/test/lock_tests.py
@@ -54,6 +54,13 @@ def wait_for_started(self):
 def wait_for_finished(self):
 while len(self.finished) < self.n:
 _wait()
+ # Wait a little bit longer to prevent the "threading_cleanup()
+ # failed to cleanup X threads" warning. The loop above is a weak
+ # synchronization. At the C level, t_bootstrap() can still be
+ # running and so _thread.count() still accounts the "almost dead"
+ # thead.
+ for _ in range(self.n):
+ _wait()
 
 def do_finish(self):
 self._can_exit = True
@@ -304,6 +311,7 @@ def f():
 self.assertRaises(RuntimeError, lock.release)
 finally:
 b.do_finish()
+ b.wait_for_finished()
 
 def test__is_owned(self):
 lock = self.locktype()


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /