-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
gh-133296: Publicly expose critical section API that accepts PyMutex #135899
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-133296: Publicly expose critical section API that accepts PyMutex #135899
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Some small clarifications that the macros take PyMutex*
as opposed to PyMutex
.
Co-authored-by: Sam Gross <[email protected]>
Misc/NEWS.d/next/C_API/2025-06-24-11-10-01.gh-issue-133296.lIEuVJ.rst
Outdated
Show resolved
Hide resolved
The C API workgroup vote now shows unanimous approval for adding this: capi-workgroup/decisions#67 (comment) |
Thanks @ngoldbaum for the PR, and @colesbury for merging it 🌮🎉.. I'm working now to backport this PR to: 3.14. |
…Mutex (pythongh-135899) This makes the following APIs public: * `Py_BEGIN_CRITICAL_SECTION_MUTEX(mutex),` * `Py_BEGIN_CRITICAL_SECTION2_MUTEX(mutex1, mutex2)` * `void PyCriticalSection_BeginMutex(PyCriticalSection *c, PyMutex *mutex)` * `void PyCriticalSection2_BeginMutex(PyCriticalSection2 *c, PyMutex *mutex1, PyMutex *mutex2)` The macros are identical to the corresponding `Py_BEGIN_CRITICAL_SECTION` and `Py_BEGIN_CRITICAL_SECTION2` macros (e.g., they include braces), but they accept a `PyMutex` instead of an object. The new macros are still paired with the existing END macros (`Py_END_CRITICAL_SECTION`, `Py_END_CRITICAL_SECTION2`). (cherry picked from commit 89c220b) Co-authored-by: Nathan Goldbaum <[email protected]>
GH-136969 is a backport of this pull request to the 3.14 branch. |
Sure, here's 3.14 backports:
In the backports, I adjusted the And we'll need a follow-up to update these in |
…yMutex (gh-135899) (#136969) Co-authored-by: Nathan Goldbaum <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
xref gh-133296
See capi-workgroup/decisions#67 for a detailed proposal and vote from the C API workgroup.
I tagged this to be added for 3.15 but maybe @hugovk is willing to grant an exception so this lands in 3.14, since it's pretty straightforward and is new API so it shouldn't break anyone.
Docs preview: https://cpython-previews--135899.org.readthedocs.build/en/135899/c-api/init.html#python-critical-section-api