gh-111968: Use per-thread freelists for generator in free-threading (gh-114189)

This commit is contained in:
Donghee Na 2024-01-19 03:15:00 +09:00 committed by GitHub
parent 2d3f6b56c5
commit 7fa511ba57
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 48 additions and 74 deletions

View file

@ -1462,6 +1462,7 @@ _Py_ClearFreeLists(_PyFreeListState *state, int is_finalization)
_PyTuple_ClearFreeList(state, is_finalization);
_PyList_ClearFreeList(state, is_finalization);
_PyContext_ClearFreeList(state, is_finalization);
_PyAsyncGen_ClearFreeLists(state, is_finalization);
}
void
@ -1549,7 +1550,7 @@ PyThreadState_Clear(PyThreadState *tstate)
#ifdef Py_GIL_DISABLED
// Each thread should clear own freelists in free-threading builds.
_PyFreeListState *freelist_state = &((_PyThreadStateImpl*)tstate)->freelist_state;
_Py_ClearFreeLists(freelist_state, 0);
_Py_ClearFreeLists(freelist_state, 1);
_PySlice_ClearCache(freelist_state);
#endif