From a7ce514a7c0fc3af1f0f39883cb30c6832dc20e0 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Tue, 12 Mar 2024 12:09:58 -0400 Subject: [PATCH] gh-116604: Check for `gcstate->enabled` in _Py_RunGC in free-threaded build This isn't strictly necessary because the implementation of `gc_should_collect` already checks `gcstate->enabled` in the free-threaded build, but it seems like a good idea until the common pieces of gc.c and gc_free_threading.c are refactored out. --- Python/gc_free_threading.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Python/gc_free_threading.c b/Python/gc_free_threading.c index 59e76012f8fc50..2b13d1f005dd97 100644 --- a/Python/gc_free_threading.c +++ b/Python/gc_free_threading.c @@ -1603,6 +1603,10 @@ _PyObject_GC_Link(PyObject *op) void _Py_RunGC(PyThreadState *tstate) { + GCState *gcstate = get_gc_state(); + if (!gcstate->enabled) { + return; + } gc_collect_main(tstate, 0, _Py_GC_REASON_HEAP); }