diff --git a/tests/test_with_catch/test_subinterpreter.cpp b/tests/test_with_catch/test_subinterpreter.cpp index 3c7c35be1..8f30c8f44 100644 --- a/tests/test_with_catch/test_subinterpreter.cpp +++ b/tests/test_with_catch/test_subinterpreter.cpp @@ -90,7 +90,11 @@ TEST_CASE("Single Subinterpreter") { unsafe_reset_internals_for_single_interpreter(); } -# if PY_VERSION_HEX >= 0x030D0000 +// "Move Subinterpreter" test is disabled on free-threaded Python 3.14+ due to a hang +// in Py_EndInterpreter() when the subinterpreter is destroyed from a different thread +// than it was created on. See: https://github.com/pybind/pybind11/pull/5933 +# if PY_VERSION_HEX >= 0x030D0000 \ + && !(PY_VERSION_HEX >= 0x030E0000 && defined(Py_GIL_DISABLED)) TEST_CASE("Move Subinterpreter") { std::unique_ptr sub(new py::subinterpreter(py::subinterpreter::create()));