From edca27a6aa850c1da761a73499c0d6feece3376c Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 5 May 2020 19:50:58 +0200 Subject: [PATCH] bpo-40513: new_interpreter() init GIL earlier Fix also code to handle init_interp_main() failure. --- Python/pylifecycle.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 5726a559cfcb73..2149d8928d596d 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;