Skip to content

Commit

Permalink
bpo-31234: Try to fix lock_tests warning (python#3557)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
vstinner authored Sep 13, 2017
1 parent 65bc620 commit 096ae33
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions Lib/test/lock_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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()
Expand Down

0 comments on commit 096ae33

Please sign in to comment.