summaryrefslogtreecommitdiffstats
path: root/Python/thread.c
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2022-12-09 00:50:58 (GMT)
committerGitHub <noreply@github.com>2022-12-09 00:50:58 (GMT)
commit1160001b34615066b1188d5fb457131b1ebb928d (patch)
tree827671c00c80bf761675700128457d7171ec8f46 /Python/thread.c
parentbc8cdf8c3d58f5d28c9e70c72eaae52c6d13f961 (diff)
downloadcpython-1160001b34615066b1188d5fb457131b1ebb928d.zip
cpython-1160001b34615066b1188d5fb457131b1ebb928d.tar.gz
cpython-1160001b34615066b1188d5fb457131b1ebb928d.tar.bz2
gh-81057: Move Threading-Related Globals to _PyRuntimeState (#100084)
https://github.com/python/cpython/issues/81057
Diffstat (limited to 'Python/thread.c')
-rw-r--r--Python/thread.c36
1 files changed, 6 insertions, 30 deletions
diff --git a/Python/thread.c b/Python/thread.c
index 3c1e78e..4581f1a 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -8,15 +8,7 @@
#include "Python.h"
#include "pycore_pystate.h" // _PyInterpreterState_GET()
#include "pycore_structseq.h" // _PyStructSequence_FiniType()
-
-#ifndef _POSIX_THREADS
-/* This means pthreads are not implemented in libc headers, hence the macro
- not present in unistd.h. But they still can be implemented as an external
- library (e.g. gnu pth in pthread emulation) */
-# ifdef HAVE_PTHREAD_H
-# include <pthread.h> /* _POSIX_THREADS */
-# endif
-#endif
+#include "pycore_pythread.h"
#ifndef DONT_HAVE_STDIO_H
#include <stdio.h>
@@ -24,33 +16,17 @@
#include <stdlib.h>
-#ifndef _POSIX_THREADS
-
-/* Check if we're running on HP-UX and _SC_THREADS is defined. If so, then
- enough of the Posix threads package is implemented to support python
- threads.
-
- This is valid for HP-UX 11.23 running on an ia64 system. If needed, add
- a check of __ia64 to verify that we're running on an ia64 system instead
- of a pa-risc system.
-*/
-#ifdef __hpux
-#ifdef _SC_THREADS
-#define _POSIX_THREADS
-#endif
-#endif
-
-#endif /* _POSIX_THREADS */
-
-static int initialized;
static void PyThread__init_thread(void); /* Forward */
+#define initialized _PyRuntime.threads.initialized
+
void
PyThread_init_thread(void)
{
- if (initialized)
+ if (initialized) {
return;
+ }
initialized = 1;
PyThread__init_thread();
}
@@ -58,7 +34,7 @@ PyThread_init_thread(void)
#if defined(HAVE_PTHREAD_STUBS)
# define PYTHREAD_NAME "pthread-stubs"
# include "thread_pthread_stubs.h"
-#elif defined(_POSIX_THREADS)
+#elif defined(_USE_PTHREADS) /* AKA _PTHREADS */
# if defined(__EMSCRIPTEN__) && !defined(__EMSCRIPTEN_PTHREADS__)
# define PYTHREAD_NAME "pthread-stubs"
# else