bpo-40513: new_interpreter() init GIL earlier (GH-19942)
Fix also code to handle init_interp_main() failure.
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 5726a55..2149d89 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1575,6 +1575,11 @@
}
interp->config._isolated_interpreter = isolated_subinterpreter;
+ status = init_interp_create_gil(tstate);
+ if (_PyStatus_EXCEPTION(status)) {
+ goto error;
+ }
+
status = pycore_interp_init(tstate);
if (_PyStatus_EXCEPTION(status)) {
goto error;
@@ -1585,11 +1590,6 @@
goto error;
}
- status = init_interp_create_gil(tstate);
- if (_PyStatus_EXCEPTION(status)) {
- return status;
- }
-
*tstate_p = tstate;
return _PyStatus_OK();