From df0f3a738f8bd414e0a3164ad65f71acfa83c085 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Tue, 16 Apr 2024 11:55:56 -0400 Subject: gh-117683: Fix test_free_different_thread failures with GIL disabled (#117685) --- Lib/test/test_code.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_code.py b/Lib/test/test_code.py index 5c0fdc8..fe8c672 100644 --- a/Lib/test/test_code.py +++ b/Lib/test/test_code.py @@ -141,7 +141,7 @@ except ImportError: ctypes = None from test.support import (cpython_only, check_impl_detail, requires_debug_ranges, - gc_collect) + gc_collect, Py_GIL_DISABLED) from test.support.script_helper import assert_python_ok from test.support import threading_helper, import_helper from test.support.bytecode_helper import instructions_with_positions @@ -866,7 +866,11 @@ if check_impl_detail(cpython=True) and ctypes is not None: def run(self): del self.f gc_collect() - self.test.assertEqual(LAST_FREED, 500) + # gh-117683: In the free-threaded build, the code object's + # destructor may still be running concurrently in the main + # thread. + if not Py_GIL_DISABLED: + self.test.assertEqual(LAST_FREED, 500) SetExtra(f.__code__, FREE_INDEX, ctypes.c_voidp(500)) tt = ThreadTest(f, self) -- cgit v0.12