mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
gh-115103: Implement delayed free mechanism for free-threaded builds (#115367)
This adds `_PyMem_FreeDelayed()` and supporting functions. The `_PyMem_FreeDelayed()` function frees memory with the same allocator as `PyMem_Free()`, but after some delay to ensure that concurrent lock-free readers have finished.
This commit is contained in:
parent
d207c7cd5a
commit
e3ad6ca56f
8 changed files with 226 additions and 0 deletions
|
@ -92,6 +92,11 @@ extern void _PyMem_ArenaFree(void *, void *, size_t);
|
|||
{ NULL, _PyMem_ArenaAlloc, _PyMem_ArenaFree }
|
||||
|
||||
|
||||
#define _Py_mem_free_queue_INIT(queue) \
|
||||
{ \
|
||||
.head = LLIST_INIT(queue.head), \
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue