summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2024-04-16 15:55:56 (GMT)
committerGitHub <noreply@github.com>2024-04-16 15:55:56 (GMT)
commitdf0f3a738f8bd414e0a3164ad65f71acfa83c085 (patch)
tree8a348c83e8bd47be121cb17ad80ae1725da946be
parentacf69e09c66f8473399fabab36b81f56496528a6 (diff)
downloadcpython-df0f3a738f8bd414e0a3164ad65f71acfa83c085.zip
cpython-df0f3a738f8bd414e0a3164ad65f71acfa83c085.tar.gz
cpython-df0f3a738f8bd414e0a3164ad65f71acfa83c085.tar.bz2
gh-117683: Fix test_free_different_thread failures with GIL disabled (#117685)
-rw-r--r--Lib/test/test_code.py8
1 files 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)