diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-07-26 00:37:22 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-26 00:37:22 (GMT) |
commit | ecf411c59e33d3760dbfebf6d5b4b205bcc29d5a (patch) | |
tree | 43bd3ffa6039eeb5f19a493fa72f70b5e0544dcf /Include | |
parent | 48ed88a93bb0bbeaae9a4cfaa533e4edf13bcb51 (diff) | |
download | cpython-ecf411c59e33d3760dbfebf6d5b4b205bcc29d5a.zip cpython-ecf411c59e33d3760dbfebf6d5b4b205bcc29d5a.tar.gz cpython-ecf411c59e33d3760dbfebf6d5b4b205bcc29d5a.tar.bz2 |
bpo-34170: Enhance _PyCoreConfig_Read() (GH-8468)
* Inline cmdline_get_env_flags() into config_read_env_vars():
_PyCoreConfig_Read() now reads much more environment variables like
PYTHONVERBOSE.
* Allow to override faulthandler and allocator even if dev_mode=1.
PYTHONMALLOC is now the priority over PYTHONDEVMODE.
* Fix _PyCoreConfig_Copy(): copy also install_signal_handlers,
coerce_c_locale and coerce_c_locale_warn
* _PyCoreConfig.install_signal_handlers default is now 1: install
signals by default
* Fix also a compiler warning: don't define _PyPathConfig type twice.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/pylifecycle.h | 3 | ||||
-rw-r--r-- | Include/pystate.h | 19 |
2 files changed, 15 insertions, 7 deletions
diff --git a/Include/pylifecycle.h b/Include/pylifecycle.h index 6e5d796..78f01ee 100644 --- a/Include/pylifecycle.h +++ b/Include/pylifecycle.h @@ -127,10 +127,9 @@ PyAPI_FUNC(wchar_t *) Py_GetExecPrefix(void); PyAPI_FUNC(wchar_t *) Py_GetPath(void); #ifdef Py_BUILD_CORE struct _PyPathConfig; -typedef struct _PyPathConfig _PyPathConfig; PyAPI_FUNC(_PyInitError) _PyPathConfig_SetGlobal( - const _PyPathConfig *config); + const struct _PyPathConfig *config); PyAPI_FUNC(PyObject*) _PyPathConfig_ComputeArgv0(int argc, wchar_t **argv); PyAPI_FUNC(int) _Py_FindEnvConfigValue( FILE *env_file, diff --git a/Include/pystate.h b/Include/pystate.h index 2c70505..f59d26b 100644 --- a/Include/pystate.h +++ b/Include/pystate.h @@ -26,15 +26,23 @@ typedef PyObject* (*_PyFrameEvalFunction)(struct _frame *, int); typedef struct { - int install_signal_handlers; /* Install signal handlers? -1 means unset */ + /* Install signal handlers? Yes by default. */ + int install_signal_handlers; int ignore_environment; /* -E, Py_IgnoreEnvironmentFlag, -1 means unset */ int use_hash_seed; /* PYTHONHASHSEED=x */ unsigned long hash_seed; - const char *allocator; /* Memory allocator: _PyMem_SetupAllocators() */ + const char *allocator; /* Memory allocator: PYTHONMALLOC */ int dev_mode; /* PYTHONDEVMODE, -X dev */ - int faulthandler; /* PYTHONFAULTHANDLER, -X faulthandler */ - int tracemalloc; /* PYTHONTRACEMALLOC, -X tracemalloc=N */ + + /* Enable faulthandler? + Set to 1 by -X faulthandler and PYTHONFAULTHANDLER. -1 means unset. */ + int faulthandler; + + /* Enable tracemalloc? + Set by -X tracemalloc=N and PYTHONTRACEMALLOC. -1 means unset */ + int tracemalloc; + int import_time; /* PYTHONPROFILEIMPORTTIME, -X importtime */ int show_ref_count; /* -X showrefcount */ int show_alloc_count; /* -X showalloccount */ @@ -229,9 +237,10 @@ typedef struct { #define _PyCoreConfig_INIT \ (_PyCoreConfig){ \ - .install_signal_handlers = -1, \ + .install_signal_handlers = 1, \ .ignore_environment = -1, \ .use_hash_seed = -1, \ + .faulthandler = -1, \ .tracemalloc = -1, \ .coerce_c_locale = -1, \ .utf8_mode = -1, \ |