Feature or enhancement
We should make functools.lru_cache thread-safe in the --disable-gil builds.
For context, here is the commit from the nogil-3.12 fork: colesbury/nogil-3.12@041a08e339
NOTES (differences in 3.13 from nogil-3.12):
- No need for an extra mutex in
lru_cache_object; every PyObject has a mutex in the --disable-gil builds
- For
_functools__lru_cache_wrapper_cache_info_impl and _functools__lru_cache_wrapper_cache_clear_impl we should instead use the @critical_section Arugment Clinic directive. This will be simpler and require fewer changes to the code. lru_cache_call still needs explicit calls to the critical section API.
Linked PRs
Feature or enhancement
We should make
functools.lru_cachethread-safe in the--disable-gilbuilds.For context, here is the commit from the
nogil-3.12fork: colesbury/nogil-3.12@041a08e339NOTES (differences in 3.13 from
nogil-3.12):lru_cache_object; every PyObject has a mutex in the--disable-gilbuilds_functools__lru_cache_wrapper_cache_info_impland_functools__lru_cache_wrapper_cache_clear_implwe should instead use the@critical_sectionArugment Clinic directive. This will be simpler and require fewer changes to the code.lru_cache_callstill needs explicit calls to the critical section API.Linked PRs
functools.lru_cachethreadsafe in --disable-gil build #112111