]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-40513: new_interpreter() init GIL earlier (GH-19942)
authorVictor Stinner <vstinner@python.org>
Tue, 5 May 2020 18:16:37 +0000 (20:16 +0200)
committerGitHub <noreply@github.com>
Tue, 5 May 2020 18:16:37 +0000 (20:16 +0200)
Fix also code to handle init_interp_main() failure.

Python/pylifecycle.c

index 5726a559cfcb7399a13bb9d4cae13be0c3024747..2149d8928d596d22b8bf7305543949a540da4c31 100644 (file)
@@ -1575,19 +1575,19 @@ new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter)
     }
     interp->config._isolated_interpreter = isolated_subinterpreter;
 
-    status = pycore_interp_init(tstate);
+    status = init_interp_create_gil(tstate);
     if (_PyStatus_EXCEPTION(status)) {
         goto error;
     }
 
-    status = init_interp_main(tstate);
+    status = pycore_interp_init(tstate);
     if (_PyStatus_EXCEPTION(status)) {
         goto error;
     }
 
-    status = init_interp_create_gil(tstate);
+    status = init_interp_main(tstate);
     if (_PyStatus_EXCEPTION(status)) {
-        return status;
+        goto error;
     }
 
     *tstate_p = tstate;