diff --git a/Lib/test/test_capi.py b/Lib/test/test_capi.py index 40750cc49324f9..e157d9fdc850b6 100644 --- a/Lib/test/test_capi.py +++ b/Lib/test/test_capi.py @@ -915,6 +915,21 @@ def callback(): t.start() t.join() + @threading_helper.reap_threads + @threading_helper.requires_working_threading() + 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))