summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2020-05-05 18:16:37 (GMT)
committerGitHub <noreply@github.com>2020-05-05 18:16:37 (GMT)
commit0dd5e7a718997da2026ed64fe054dc36cae4fee7 (patch)
tree6c0c35cbdb268e595221a8b52cb0a757852f1384
parente838a9324c1719bb917ca81ede8d766b5cb551f4 (diff)
downloadcpython-0dd5e7a718997da2026ed64fe054dc36cae4fee7.zip
cpython-0dd5e7a718997da2026ed64fe054dc36cae4fee7.tar.gz
cpython-0dd5e7a718997da2026ed64fe054dc36cae4fee7.tar.bz2
bpo-40513: new_interpreter() init GIL earlier (GH-19942)
Fix also code to handle init_interp_main() failure.
-rw-r--r--Python/pylifecycle.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index 5726a55..2149d89 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -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;