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
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)