diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 7b208c90063fd5..0adb689beb8208 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -825,6 +825,20 @@ def callback(): t.start() t.join() + @threading_helper.reap_threads + def test_gilstate_ensure_no_deadlock(self): + # See https://github.com/python/cpython/issues/96071 + code = textwrap.dedent(f""" + import _testcapi + + def callback(): + print('callback called') + + _testcapi._test_thread_state(callback) + """) + ret = assert_python_ok('-X', 'tracemalloc', '-c', code) + self.assertIn(b'callback called', ret.out) + class Test_testcapi(unittest.TestCase): locals().update((name, getattr(_testcapi, name))