diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-05-16 17:38:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-16 17:38:16 +0200 |
commit | 9ef5dcaa0b3c7c7ba28dbb3ec0c9507d9d05e3a9 (patch) | |
tree | 56b9b45660cc83960c2752e22ee47090632ebb09 /Python/pylifecycle.c | |
parent | ae239f6b0626e926613a4a1dbafa323bd41fec32 (diff) | |
download | cpython-git-9ef5dcaa0b3c7c7ba28dbb3ec0c9507d9d05e3a9.tar.gz |
bpo-36763: Add _Py_InitializeMain() (GH-13362)
* Add a private _Py_InitializeMain() function.
* Add again _PyCoreConfig._init_main.
* _Py_InitializeFromConfig() now uses _init_main to decide
if _Py_InitializeMainInterpreter() should be called.
* _PyCoreConfig: rename _frozen to pathconfig_warnings, its value is
now the opposite of Py_FrozenFlag.
* Add an unit test for _init_main=0 and _Py_InitializeMain().
Diffstat (limited to 'Python/pylifecycle.c')
-rw-r--r-- | Python/pylifecycle.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index a173eb380a..e89152637f 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -970,6 +970,21 @@ _Py_InitializeMainInterpreter(_PyRuntimeState *runtime, return _Py_INIT_OK(); } + +_PyInitError +_Py_InitializeMain(void) +{ + _PyInitError err = _PyRuntime_Initialize(); + if (_Py_INIT_FAILED(err)) { + return err; + } + _PyRuntimeState *runtime = &_PyRuntime; + PyInterpreterState *interp = _PyRuntimeState_GetThreadState(runtime)->interp; + + return _Py_InitializeMainInterpreter(runtime, interp); +} + + #undef _INIT_DEBUG_PRINT static _PyInitError @@ -990,7 +1005,7 @@ init_python(const _PyCoreConfig *config, const _PyArgv *args) } config = &interp->core_config; - if (!config->_frozen) { + if (config->_init_main) { err = _Py_InitializeMainInterpreter(runtime, interp); if (_Py_INIT_FAILED(err)) { return err; |