diff options
author | Victor Stinner <vstinner@python.org> | 2020-05-05 14:41:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-05 14:41:11 (GMT) |
commit | c5fa364f4ea836f25dd07cfb328152d40a568371 (patch) | |
tree | 34e2aa87ac5abc14ac1d79eb0f862fb526fda481 /Python | |
parent | 0b1e3307e24b0af45787ab6456535b8346e0239a (diff) | |
download | cpython-c5fa364f4ea836f25dd07cfb328152d40a568371.zip cpython-c5fa364f4ea836f25dd07cfb328152d40a568371.tar.gz cpython-c5fa364f4ea836f25dd07cfb328152d40a568371.tar.bz2 |
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')
-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 262738f..fd94d7d 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 |