summaryrefslogtreecommitdiffstats
path: root/Modules/main.c
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2017-05-24 06:00:52 (GMT)
committerGitHub <noreply@github.com>2017-05-24 06:00:52 (GMT)
commitc7ec9985bbdbb2b073f2c37febd18268817da29a (patch)
tree4e3c90c24c8ec2aa0143949ab129d3d98258f9ef /Modules/main.c
parent9e98cd0383d9e7f06c0537038a32459bf5efa97a (diff)
downloadcpython-c7ec9985bbdbb2b073f2c37febd18268817da29a.zip
cpython-c7ec9985bbdbb2b073f2c37febd18268817da29a.tar.gz
cpython-c7ec9985bbdbb2b073f2c37febd18268817da29a.tar.bz2
bpo-22257: Private C-API for main interpreter initialization (PEP 432). (#1729)
(patch by Nick Coghlan)
Diffstat (limited to 'Modules/main.c')
-rw-r--r--Modules/main.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/Modules/main.c b/Modules/main.c
index c41bd96..438cb2c 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -768,8 +768,21 @@ Py_Main(int argc, wchar_t **argv)
#else
Py_SetProgramName(argv[0]);
#endif
- if (_Py_InitializeMainInterpreter(1))
- Py_FatalError("Py_Main: Py_InitializeMainInterpreter failed");
+ /* Replaces previous call to Py_Initialize()
+ *
+ * TODO: Move environment queries (etc) into Py_ReadConfig
+ */
+ {
+ _PyMainInterpreterConfig config = _PyMainInterpreterConfig_INIT;
+
+ /* TODO: Moar config options! */
+ config.install_signal_handlers = 1;
+ /* TODO: Print any exceptions raised by these operations */
+ if (_Py_ReadMainInterpreterConfig(&config))
+ Py_FatalError("Py_Main: Py_ReadMainInterpreterConfig failed");
+ if (_Py_InitializeMainInterpreter(&config))
+ Py_FatalError("Py_Main: Py_InitializeMainInterpreter failed");
+ }
/* TODO: Move this to _PyRun_PrepareMain */
if (!Py_QuietFlag && (Py_VerboseFlag ||