From 0dd5e7a718997da2026ed64fe054dc36cae4fee7 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 5 May 2020 20:16:37 +0200 Subject: [PATCH] bpo-40513: new_interpreter() init GIL earlier (GH-19942) Fix also code to handle init_interp_main() failure. --- Python/pylifecycle.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 5726a559cfc..2149d8928d5 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1575,6 +1575,11 @@ new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter) } 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 @@ new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter) goto error; } - status = init_interp_create_gil(tstate); - if (_PyStatus_EXCEPTION(status)) { - return status; - } - *tstate_p = tstate; return _PyStatus_OK();