Server IP : 192.64.118.117 / Your IP : 18.190.156.78 Web Server : LiteSpeed System : Linux premium56.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64 User : thecgapy ( 1160) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/alt/python313/include/python3.13/internal/ |
Upload File : |
// The _PySemaphore API a simplified cross-platform semaphore used to implement // wakeup/sleep. #ifndef Py_INTERNAL_SEMAPHORE_H #define Py_INTERNAL_SEMAPHORE_H #ifndef Py_BUILD_CORE # error "this header requires Py_BUILD_CORE define" #endif #include "pycore_pythread.h" // _POSIX_SEMAPHORES #ifdef MS_WINDOWS # define WIN32_LEAN_AND_MEAN # include <windows.h> #elif defined(HAVE_PTHREAD_H) # include <pthread.h> #elif defined(HAVE_PTHREAD_STUBS) # include "cpython/pthread_stubs.h" #else # error "Require native threads. See https://bugs.python.org/issue31370" #endif #if (defined(_POSIX_SEMAPHORES) && (_POSIX_SEMAPHORES+0) != -1 && \ defined(HAVE_SEM_TIMEDWAIT)) # define _Py_USE_SEMAPHORES # include <semaphore.h> #endif #ifdef __cplusplus extern "C" { #endif typedef struct _PySemaphore { #if defined(MS_WINDOWS) HANDLE platform_sem; #elif defined(_Py_USE_SEMAPHORES) sem_t platform_sem; #else pthread_mutex_t mutex; pthread_cond_t cond; int counter; #endif } _PySemaphore; // Puts the current thread to sleep until _PySemaphore_Wakeup() is called. // If `detach` is true, then the thread will detach/release the GIL while // sleeping. PyAPI_FUNC(int) _PySemaphore_Wait(_PySemaphore *sema, PyTime_t timeout_ns, int detach); // Wakes up a single thread waiting on sema. Note that _PySemaphore_Wakeup() // can be called before _PySemaphore_Wait(). PyAPI_FUNC(void) _PySemaphore_Wakeup(_PySemaphore *sema); // Initializes/destroys a semaphore PyAPI_FUNC(void) _PySemaphore_Init(_PySemaphore *sema); PyAPI_FUNC(void) _PySemaphore_Destroy(_PySemaphore *sema); #ifdef __cplusplus } #endif #endif /* !Py_INTERNAL_SEMAPHORE_H */