Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork34.2k
Open
Description
Bug report
Bug description:
After some discussion on PR#145362, I noticed that inModules/_functoolsmodule.c, all use cases ofPyDict_Next do not use a critical section, which is necessary in for the free-threaded build. Thedocs say that forPyDict_Next:
The function is not thread-safe in thefree-threaded build without external synchronization. You can usePy_BEGIN_CRITICAL_SECTION to lock the dictionary while iterating over it
I have not checked if other files are missing a critical section, but it is definitely possible. I will draft a PR shortly for this issue in the coming days, but if anyone else finds other occurrences ofPyDict_Next that are not thread-safe, please let me know.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux