diff --git a/Include/pylifecycle.h b/Include/pylifecycle.h index 1df114a73d..6f49e77c56 100644 --- a/Include/pylifecycle.h +++ b/Include/pylifecycle.h @@ -16,6 +16,8 @@ PyAPI_FUNC(void) Py_Finalize(void); PyAPI_FUNC(int) Py_FinalizeEx(void); #endif PyAPI_FUNC(int) Py_IsInitialized(void); +/* runtime_initialized */ +PyAPI_FUNC(int) _Py_IsInitialized(void); /* Subinterpreter support */ PyAPI_FUNC(PyThreadState *) Py_NewInterpreter(void); diff --git a/Python/ceval_gil.h b/Python/ceval_gil.h index 34d48c990c..2073757247 100644 --- a/Python/ceval_gil.h +++ b/Python/ceval_gil.h @@ -186,6 +186,7 @@ take_gil(struct _ceval_runtime_state *ceval, PyThreadState *tstate) if (tstate == NULL) { Py_FatalError("take_gil: NULL tstate"); } + assert(_Py_IsInitialized()); struct _gil_runtime_state *gil = &ceval->gil; int err = errno; diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index d29b293b79..61a0024f30 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -95,6 +95,12 @@ _PyRuntime_Finalize(void) runtime_initialized = 0; } +int +_Py_IsInitialized(void) +{ + return runtime_initialized != 0; +} + int _Py_IsFinalizing(void) {