From 08f98f4576f95f9ae1a4423d151fce053416f39f Mon Sep 17 00:00:00 2001 From: Peter Bierma Date: Fri, 15 Nov 2024 08:03:46 -0500 Subject: [PATCH] Fix intermittent failures for the `PyUnstable_Object_EnableDeferredRefcount` tests (GH-126849) Hotfix for the PyUnstable_Object_EnableDeferredRefcount tests. --- Lib/test/test_capi/test_object.py | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Lib/test/test_capi/test_object.py b/Lib/test/test_capi/test_object.py index a38b203ed12..b0d39937fd8 100644 --- a/Lib/test/test_capi/test_object.py +++ b/Lib/test/test_capi/test_object.py @@ -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))