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 904bea3..37fadca 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -98,8 +98,15 @@
/* 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;