From: Victor Stinner Date: Wed, 6 May 2020 17:05:27 +0000 (+0200) Subject: bpo-40521: Disable list free list in subinterpreters (GH-19959) X-Git-Tag: v3.9.0b1~152 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b7aa23d29fa48238dab3692d02e1f0a7e8a5af9c;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Objects/listobject.c b/Objects/listobject.c index 904bea317c9d..37fadca129ac 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;