Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.4k
gh-110014: Fix _POSIX_THREADS and _POSIX_SEMAPHORES usage#110139
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
* pycore_pythread.h is now the central place to make sure that _POSIX_THREADS and _POSIX_SEMAPHORES macros are defined if available.* Make sure that pycore_pythread.h is included when _POSIX_THREADS and _POSIX_SEMAPHORES macros are tested.* PY_TIMEOUT_MAX is now defined as a constant, since its value depends on _POSIX_THREADS, instead of being defined as a macro.* Prevent integer overflow in the preprocessor when computing PY_TIMEOUT_MAX_VALUE on Windows: replace "0xFFFFFFFELL * 1000 < LLONG_MAX" with "0xFFFFFFFELL < LLONG_MAX / 1000".* Document the change and give hints how to fix affected code.
@encukou: "Oops", I have to add an exception to # "Legacy": some old symbols are prefixed by "PY_".EXCEPTIONS=frozenset({'PY_TIMEOUT_MAX',}) I would prefer to prefix all public symbols with |
Oh. I don't know if it's related or not, but I had to write PRgh-110155 to add many |
@@ -1843,6 +1843,10 @@ | |||
[function.PyThread_start_new_thread] | |||
added = '3.2' | |||
# Not mentioned in PEP 384, was implemented as a macro in Python <= 3.12 | |||
[data.PY_TIMEOUT_MAX] |
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.
@vstinner Could we instead exclude this undocumented constant from the limited API?
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.
I checked and apparently, it's safe to remove this constant, so I created PRgh-110217 for that.
…on#110139)* pycore_pythread.h is now the central place to make sure that _POSIX_THREADS and _POSIX_SEMAPHORES macros are defined if available.* Make sure that pycore_pythread.h is included when _POSIX_THREADS and _POSIX_SEMAPHORES macros are tested.* PY_TIMEOUT_MAX is now defined as a constant, since its value depends on _POSIX_THREADS, instead of being defined as a macro.* Prevent integer overflow in the preprocessor when computing PY_TIMEOUT_MAX_VALUE on Windows: replace "0xFFFFFFFELL * 1000 < LLONG_MAX" with "0xFFFFFFFELL < LLONG_MAX / 1000".* Document the change and give hints how to fix affected code.* Add an exception for PY_TIMEOUT_MAX name to smelly.py* Add PY_TIMEOUT_MAX to the stable ABI
Uh oh!
There was an error while loading.Please reload this page.
📚 Documentation preview 📚:https://cpython-previews--110139.org.readthedocs.build/