From 25f6ff5d3e92305659db62e7f7545f823f0dbd05 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Thu, 11 Apr 2024 15:00:54 -0400 Subject: gh-117649: Raise ImportError for unsupported modules in free-threaded build (#117651) The free-threaded build does not currently support the combination of single-phase init modules and non-isolated subinterpreters. Ensure that `check_multi_interp_extensions` is always `True` for subinterpreters in the free-threaded build so that importing these modules raises an `ImportError`. --- Python/import.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Python/import.c') diff --git a/Python/import.c b/Python/import.c index 6544a84d895..b040c7d5c0f 100644 --- a/Python/import.c +++ b/Python/import.c @@ -3696,9 +3696,16 @@ _imp__override_multi_interp_extensions_check_impl(PyObject *module, "cannot be used in the main interpreter"); return NULL; } +#ifdef Py_GIL_DISABLED + PyErr_SetString(PyExc_RuntimeError, + "_imp._override_multi_interp_extensions_check() " + "cannot be used in the free-threaded build"); + return NULL; +#else int oldvalue = OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK(interp); OVERRIDE_MULTI_INTERP_EXTENSIONS_CHECK(interp) = override; return PyLong_FromLong(oldvalue); +#endif } #ifdef HAVE_DYNAMIC_LOADING -- cgit v1.2.3