gh-115103: Implement delayed memory reclamation (QSBR) (#115180)

This adds a safe memory reclamation scheme based on FreeBSD's "GUS" and
quiescent state based reclamation (QSBR). The API provides a mechanism
for callers to detect when it is safe to free memory that may be
concurrently accessed by readers.
This commit is contained in:
Sam Gross 2024-02-16 15:25:19 -05:00 • committed by GitHub
parent 711f42de2e
commit 5903190727
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 577 additions and 2 deletions

View file

@ -458,6 +458,7 @@ PYTHON_OBJS= \
Python/pystate.o \
Python/pythonrun.o \
Python/pytime.o \
Python/qsbr.o \
Python/bootstrap_hash.o \
Python/specialize.o \
Python/structmember.o \
@ -1162,6 +1163,7 @@ PYTHON_HEADERS= \
$(srcdir)/Include/internal/pycore_pystats.h \
$(srcdir)/Include/internal/pycore_pythonrun.h \
$(srcdir)/Include/internal/pycore_pythread.h \
$(srcdir)/Include/internal/pycore_qsbr.h \
$(srcdir)/Include/internal/pycore_range.h \
$(srcdir)/Include/internal/pycore_runtime.h \
$(srcdir)/Include/internal/pycore_runtime_init.h \