summaryrefslogtreecommitdiff
path: root/Python/pylifecycle.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-05-16 17:38:16 +0200
committerGitHub <noreply@github.com>2019-05-16 17:38:16 +0200
commit9ef5dcaa0b3c7c7ba28dbb3ec0c9507d9d05e3a9 (patch)
tree56b9b45660cc83960c2752e22ee47090632ebb09 /Python/pylifecycle.c
parentae239f6b0626e926613a4a1dbafa323bd41fec32 (diff)
downloadcpython-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.c17
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;