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.
This commit is contained in:
Victor Stinner 2020-05-06 19:05:27 +02:00 committed by GitHub
parent d8135e913a
commit b7aa23d29f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 1 deletions

View File

@ -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;