summaryrefslogtreecommitdiffstats
path: root/Modules/main.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-07-20 15:34:23 (GMT)
committerGitHub <noreply@github.com>2018-07-20 15:34:23 (GMT)
commitfb47bca9ee2d07ce96df94b4e4abafd11826eb01 (patch)
tree5adbd1b262e05b0cd62bed74254b29f42c8b05c7 /Modules/main.c
parent2c5c0a367c6ca648178072240fe0a32848636da6 (diff)
downloadcpython-fb47bca9ee2d07ce96df94b4e4abafd11826eb01.zip
cpython-fb47bca9ee2d07ce96df94b4e4abafd11826eb01.tar.gz
cpython-fb47bca9ee2d07ce96df94b4e4abafd11826eb01.tar.bz2
bpo-34008: Allow to call Py_Main() after Py_Initialize() (GH-8043)
Py_Main() can again be called after Py_Initialize(), as in Python 3.6. The new configuration is ignored, except of _PyMainInterpreterConfig.argv which is used to update sys.argv.
Diffstat (limited to 'Modules/main.c')
-rw-r--r--Modules/main.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/Modules/main.c b/Modules/main.c
index 6067d5e..1ff9855 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -2696,9 +2696,13 @@ pymain_main(_PyMain *pymain)
pymain_init_stdio(pymain);
- pymain->err = _Py_InitializeCore(&pymain->config);
- if (_Py_INIT_FAILED(pymain->err)) {
- _Py_FatalInitError(pymain->err);
+ /* bpo-34008: For backward compatibility reasons, calling Py_Main() after
+ Py_Initialize() ignores the new configuration. */
+ if (!_PyRuntime.initialized) {
+ pymain->err = _Py_InitializeCore(&pymain->config);
+ if (_Py_INIT_FAILED(pymain->err)) {
+ _Py_FatalInitError(pymain->err);
+ }
}
if (pymain_init_python_main(pymain) < 0) {