[3.14] gh-133296: Publicly expose critical section API that accepts PyMutex (gh-135899) #136969
+96
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
andPy_BEGIN_CRITICAL_SECTION2
macros (e.g., they include braces), but theyaccept 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 nathan.goldbaum@gmail.com
_PyCriticalSection_BeginMutex
as a public API #133296📚 Documentation preview 📚: https://cpython-previews--136969.org.readthedocs.build/