diff options
author | Victor Stinner <vstinner@python.org> | 2020-05-05 16:41:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-05 16:41:11 +0200 |
commit | c5fa364f4ea836f25dd07cfb328152d40a568371 (patch) | |
tree | 34e2aa87ac5abc14ac1d79eb0f862fb526fda481 /Python/preconfig.c | |
parent | 0b1e3307e24b0af45787ab6456535b8346e0239a (diff) | |
download | cpython-git-c5fa364f4ea836f25dd07cfb328152d40a568371.tar.gz |
bpo-40514: Add --with-experimental-isolated-subinterpreters (GH-19926)
Add --with-experimental-isolated-subinterpreters build option to
configure: better isolate subinterpreters, experimental build mode.
When used, force the usage of the libc malloc() memory allocator,
since pymalloc relies on the unique global interpreter lock (GIL).
Diffstat (limited to 'Python/preconfig.c')
-rw-r--r-- | Python/preconfig.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Python/preconfig.c b/Python/preconfig.c index 262738fa57..fd94d7dda1 100644 --- a/Python/preconfig.c +++ b/Python/preconfig.c @@ -291,7 +291,17 @@ _PyPreConfig_InitCompatConfig(PyPreConfig *config) config->coerce_c_locale_warn = 0; config->dev_mode = -1; +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS + /* bpo-40512: pymalloc is not compatible with subinterpreters, + force usage of libc malloc() which is thread-safe. */ +#ifdef Py_DEBUG + config->allocator = PYMEM_ALLOCATOR_MALLOC_DEBUG; +#else + config->allocator = PYMEM_ALLOCATOR_MALLOC; +#endif +#else config->allocator = PYMEM_ALLOCATOR_NOT_SET; +#endif #ifdef MS_WINDOWS config->legacy_windows_fs_encoding = -1; #endif |