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