diff options
author | Victor Stinner <vstinner@python.org> | 2020-05-06 17:05:27 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-06 17:05:27 (GMT) |
commit | b7aa23d29fa48238dab3692d02e1f0a7e8a5af9c (patch) | |
tree | 03905056a9a121c9b4c11a3de4a73ac18dd1d96b /Objects | |
parent | d8135e913ab7c694db247c86d0a84c450c32d86e (diff) | |
download | cpython-b7aa23d29fa48238dab3692d02e1f0a7e8a5af9c.zip cpython-b7aa23d29fa48238dab3692d02e1f0a7e8a5af9c.tar.gz cpython-b7aa23d29fa48238dab3692d02e1f0a7e8a5af9c.tar.bz2 |
bpo-40521: Disable list free list in subinterpreters (GH-19959)
When Python is built with experimental isolated interpreters, disable
the list free list.
Temporary workaround until this cache is made per-interpreter.
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/listobject.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Objects/listobject.c b/Objects/listobject.c index 904bea3..37fadca 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -98,8 +98,15 @@ list_preallocate_exact(PyListObject *self, Py_ssize_t size) /* Empty list reuse scheme to save calls to malloc and free */ #ifndef PyList_MAXFREELIST -#define PyList_MAXFREELIST 80 +# define PyList_MAXFREELIST 80 #endif + +/* bpo-40521: list free lists are shared by all interpreters. */ +#ifdef EXPERIMENTAL_ISOLATED_SUBINTERPRETERS +# undef PyList_MAXFREELIST +# define PyList_MAXFREELIST 0 +#endif + static PyListObject *free_list[PyList_MAXFREELIST]; static int numfree = 0; |