Fix intermittent failures for the `PyUnstable_Object_EnableDeferredRefcount` tests (GH-126849)

Hotfix for the PyUnstable_Object_EnableDeferredRefcount tests.
This commit is contained in:
Peter Bierma 2024-11-15 08:03:46 -05:00 committed by GitHub
parent d00f7b1b9d
commit 08f98f4576
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 3 additions and 10 deletions

View File

@ -134,6 +134,7 @@ class ClearWeakRefsNoCallbacksTest(unittest.TestCase):
_testcapi.pyobject_clear_weakrefs_no_callbacks(obj)
@threading_helper.requires_working_threading()
class EnableDeferredRefcountingTest(unittest.TestCase):
"""Test PyUnstable_Object_EnableDeferredRefcount"""
@support.requires_resource("cpu")
@ -158,21 +159,13 @@ class EnableDeferredRefcountingTest(unittest.TestCase):
silly_list = [1, 2, 3]
threads = [
Thread(target=silly_func, args=(silly_list,)) for _ in range(5)
Thread(target=silly_func, args=(silly_list,)) for _ in range(4)
]
with threading_helper.catch_threading_exception() as cm:
for t in threads:
t.start()
with threading_helper.start_threads(threads):
for i in range(10):
silly_list.append(i)
for t in threads:
t.join()
self.assertIsNone(cm.exc_value)
if support.Py_GIL_DISABLED:
self.assertTrue(_testinternalcapi.has_deferred_refcount(silly_list))