aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/thread_pthread.h
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-09-30 19:25:54 +0200
committerGitHub <noreply@github.com>2023-09-30 19:25:54 +0200
commit74e425ec186dde6bcfb172616fe8f35ccb5a09bb (patch)
tree2c9167ef4bc17e11d2ada574f184949a8f53e5bc /Python/thread_pthread.h
parentf3bb00ea12db6525f07d62368a65efec47d192b9 (diff)
downloadcpython-74e425ec186dde6bcfb172616fe8f35ccb5a09bb.tar.gz
cpython-74e425ec186dde6bcfb172616fe8f35ccb5a09bb.zip
gh-110014: Fix _POSIX_THREADS and _POSIX_SEMAPHORES usage (#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
Diffstat (limited to 'Python/thread_pthread.h')
-rw-r--r--Python/thread_pthread.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index f96c57da646..76a1f7763f2 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -1,4 +1,5 @@
-#include "pycore_interp.h" // _PyInterpreterState.threads.stacksize
+#include "pycore_interp.h" // _PyInterpreterState.threads.stacksize
+#include "pycore_pythread.h" // _POSIX_SEMAPHORES
/* Posix threads interface */
@@ -84,10 +85,10 @@
/* On FreeBSD 4.x, _POSIX_SEMAPHORES is defined empty, so
we need to add 0 to make it work there as well. */
#if (_POSIX_SEMAPHORES+0) == -1
-#define HAVE_BROKEN_POSIX_SEMAPHORES
+# define HAVE_BROKEN_POSIX_SEMAPHORES
#else
-#include <semaphore.h>
-#include <errno.h>
+# include <semaphore.h>
+# include <errno.h>
#endif
#endif