https://github.com/python/cpython/commit/83c51da6cebdced80ebc59de70e8844244de7298
commit: 83c51da6cebdced80ebc59de70e8844244de7298
branch: main
author: Sam Gross <[email protected]>
committer: colesbury <[email protected]>
date: 2024-05-02T13:41:15-04:00
summary:
gh-118413: Fix test_release_task_refs on free-threaded build (#118494)
The `time.sleep()` call should happen before the GC to give the worker
threads time to clean-up their remaining references to objs.
Additionally, use `support.gc_collect()` instead of `gc.collect()`
just in case the extra GC calls matter.
files:
M Lib/test/_test_multiprocessing.py
diff --git a/Lib/test/_test_multiprocessing.py
b/Lib/test/_test_multiprocessing.py
index 91f85990116ee7..5fc4181a1eeadb 100644
--- a/Lib/test/_test_multiprocessing.py
+++ b/Lib/test/_test_multiprocessing.py
@@ -2804,7 +2804,6 @@ def test_map_no_failfast(self):
# check that we indeed waited for all jobs
self.assertGreater(time.monotonic() - t_start, 0.9)
- @support.requires_gil_enabled("gh-118413: test is flaky with GIL disabled")
def test_release_task_refs(self):
# Issue #29861: task arguments and results should not be kept
# alive after we are done with them.
@@ -2813,8 +2812,8 @@ def test_release_task_refs(self):
self.pool.map(identity, objs)
del objs
- gc.collect() # For PyPy or other GCs.
time.sleep(DELTA) # let threaded cleanup code run
+ support.gc_collect() # For PyPy or other GCs.
self.assertEqual(set(wr() for wr in refs), {None})
# With a process pool, copies of the objects are returned, check
# they were released too.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]