Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/python3.12/internal/pycore_pythread.h
$ cat -n /usr/include/python3.12/internal/pycore_pythread.h 1 #ifndef Py_INTERNAL_PYTHREAD_H 2 #define Py_INTERNAL_PYTHREAD_H 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 7 #ifndef Py_BUILD_CORE 8 # error "this header requires Py_BUILD_CORE define" 9 #endif 10 11 12 #ifndef _POSIX_THREADS 13 /* This means pthreads are not implemented in libc headers, hence the macro 14 not present in unistd.h. But they still can be implemented as an external 15 library (e.g. gnu pth in pthread emulation) */ 16 # ifdef HAVE_PTHREAD_H 17 # include
/* _POSIX_THREADS */ 18 # endif 19 # ifndef _POSIX_THREADS 20 /* Check if we're running on HP-UX and _SC_THREADS is defined. If so, then 21 enough of the Posix threads package is implemented to support python 22 threads. 23 24 This is valid for HP-UX 11.23 running on an ia64 system. If needed, add 25 a check of __ia64 to verify that we're running on an ia64 system instead 26 of a pa-risc system. 27 */ 28 # ifdef __hpux 29 # ifdef _SC_THREADS 30 # define _POSIX_THREADS 31 # endif 32 # endif 33 # endif /* _POSIX_THREADS */ 34 #endif /* _POSIX_THREADS */ 35 36 #if defined(_POSIX_THREADS) || defined(HAVE_PTHREAD_STUBS) 37 # define _USE_PTHREADS 38 #endif 39 40 #if defined(_USE_PTHREADS) && defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) 41 // monotonic is supported statically. It doesn't mean it works on runtime. 42 # define CONDATTR_MONOTONIC 43 #endif 44 45 46 #if defined(HAVE_PTHREAD_STUBS) 47 // pthread_key 48 struct py_stub_tls_entry { 49 bool in_use; 50 void *value; 51 }; 52 #endif 53 54 struct _pythread_runtime_state { 55 int initialized; 56 57 #ifdef _USE_PTHREADS 58 // This matches when thread_pthread.h is used. 59 struct { 60 /* NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported. */ 61 pthread_condattr_t *ptr; 62 # ifdef CONDATTR_MONOTONIC 63 /* The value to which condattr_monotonic is set. */ 64 pthread_condattr_t val; 65 # endif 66 } _condattr_monotonic; 67 68 #endif // USE_PTHREADS 69 70 #if defined(HAVE_PTHREAD_STUBS) 71 struct { 72 struct py_stub_tls_entry tls_entries[PTHREAD_KEYS_MAX]; 73 } stubs; 74 #endif 75 }; 76 77 78 #ifdef __cplusplus 79 } 80 #endif 81 #endif /* !Py_INTERNAL_PYTHREAD_H */
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™