summaryrefslogtreecommitdiffstats
path: root/Include/internal/pycore_interp.h
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2024-02-16 20:25:19 (GMT)
committerGitHub <noreply@github.com>2024-02-16 20:25:19 (GMT)
commit590319072773bd6cdcca655c420d3adb84838e96 (patch)
treeb2e7ec5cb49ef21d0fe9f35b9f32d69e8578fb86 /Include/internal/pycore_interp.h
parent711f42de2e3749208cfa7effa0d45b04e4e1fdd4 (diff)
downloadcpython-590319072773bd6cdcca655c420d3adb84838e96.zip
cpython-590319072773bd6cdcca655c420d3adb84838e96.tar.gz
cpython-590319072773bd6cdcca655c420d3adb84838e96.tar.bz2
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.
Diffstat (limited to 'Include/internal/pycore_interp.h')
-rw-r--r--Include/internal/pycore_interp.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/Include/internal/pycore_interp.h b/Include/internal/pycore_interp.h
index c074471..567d6a9 100644
--- a/Include/internal/pycore_interp.h
+++ b/Include/internal/pycore_interp.h
@@ -30,6 +30,7 @@ extern "C" {
#include "pycore_mimalloc.h" // struct _mimalloc_interp_state
#include "pycore_object_state.h" // struct _py_object_state
#include "pycore_obmalloc.h" // struct _obmalloc_state
+#include "pycore_qsbr.h" // struct _qsbr_state
#include "pycore_tstate.h" // _PyThreadStateImpl
#include "pycore_tuple.h" // struct _Py_tuple_state
#include "pycore_typeobject.h" // struct types_state
@@ -197,6 +198,7 @@ struct _is {
struct _warnings_runtime_state warnings;
struct atexit_state atexit;
struct _stoptheworld_state stoptheworld;
+ struct _qsbr_shared qsbr;
#if defined(Py_GIL_DISABLED)
struct _mimalloc_interp_state mimalloc;