mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
bpo-40521: Make tuple free list per-interpreter (GH-20247)
Each interpreter now has its own tuple free lists: * Move tuple numfree and free_list arrays into PyInterpreterState. * Define PyTuple_MAXSAVESIZE and PyTuple_MAXFREELIST macros in pycore_interp.h. * Add _Py_tuple_state structure. Pass it explicitly to tuple_alloc(). * Add tstate parameter to _PyTuple_ClearFreeList() * Each interpreter now has its own empty tuple singleton.
This commit is contained in:
parent
dc24b8a2ac
commit
69ac6e58fd
7 changed files with 82 additions and 62 deletions
|
|
@ -1025,8 +1025,9 @@ delete_garbage(PyThreadState *tstate, GCState *gcstate,
|
|||
static void
|
||||
clear_freelists(void)
|
||||
{
|
||||
PyThreadState *tstate = _PyThreadState_GET();
|
||||
_PyFrame_ClearFreeList();
|
||||
_PyTuple_ClearFreeList();
|
||||
_PyTuple_ClearFreeList(tstate);
|
||||
_PyFloat_ClearFreeList();
|
||||
_PyList_ClearFreeList();
|
||||
_PyDict_ClearFreeList();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue