GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||
GeezerVison is showing github.com — gh-133296: Publicly expose critical section API that accepts PyMutex by ngoldbaum · Pull Request #135899 · python/cpython Conversation
|
|
The C API workgroup vote now shows unanimous approval for adding this: capi-workgroup/decisions#67 (comment) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@hugovk I know it's pretty late, but I think it would help a few downstream use-cases if we could get this and #134365 backported to 3.14 in time for RC1. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @ngoldbaum for the PR, and @colesbury for merging it 🌮🎉.. I'm working now to backport this PR to: 3.14. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…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. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Sure, here's 3.14 backports:
In the backports, I adjusted the And we'll need a follow-up to update these in |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…yMutex (gh-135899) (#136969) Co-authored-by: Nathan Goldbaum <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
This doesn't sound unanimous to me: I'll be honest I don't quite get the point of a critical section that doesn't actually exclude other threads from running the same code, but I don't have energy to argue about it right now. I agree with Steve. Calling something a "critical section", when it isn't, seems badly misleading. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Based on python/cpython#135899 this'll be supported in 3.14 (and can be backported to 3.13 fairly easily).
Based on python/cpython#135899 this'll be supported in 3.14 (and can be backported to 3.13 fairly easily).
…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`).
…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`).
…epts PyMutex (pythongh-135899) (python#136969) Co-authored-by: Nathan Goldbaum <[email protected]> Co-authored-by: Hugo van Kemenade <[email protected]>
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.