gh-117683: Fix test_free_different_thread failures with GIL disabled (#117685)

This commit is contained in:
Sam Gross 2024-04-16 11:55:56 -04:00 committed by GitHub
parent acf69e09c6
commit df0f3a738f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

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