summaryrefslogtreecommitdiffstats
path: root/Include
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-07-26 00:37:22 (GMT)
committerGitHub <noreply@github.com>2018-07-26 00:37:22 (GMT)
commitecf411c59e33d3760dbfebf6d5b4b205bcc29d5a (patch)
tree43bd3ffa6039eeb5f19a493fa72f70b5e0544dcf /Include
parent48ed88a93bb0bbeaae9a4cfaa533e4edf13bcb51 (diff)
downloadcpython-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.h3
-rw-r--r--Include/pystate.h19
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, \