| cdef extern from "pythread.h": | |
| ctypedef void *PyThread_type_lock | |
| ctypedef void *PyThread_type_sema | |
| void PyThread_init_thread() | |
| long PyThread_start_new_thread(void (*)(void *), void *) | |
| void PyThread_exit_thread() | |
| long PyThread_get_thread_ident() | |
| PyThread_type_lock PyThread_allocate_lock() | |
| void PyThread_free_lock(PyThread_type_lock) | |
| int PyThread_acquire_lock(PyThread_type_lock, int mode) nogil | |
| void PyThread_release_lock(PyThread_type_lock) nogil | |
| enum: | |
| # 'mode' in PyThread_acquire_lock() | |
| WAIT_LOCK # 1 | |
| NOWAIT_LOCK # 0 | |
| ctypedef enum PyLockStatus: | |
| # return values of PyThread_acquire_lock() in CPython 3.2+ | |
| PY_LOCK_FAILURE = 0 | |
| PY_LOCK_ACQUIRED = 1 | |
| PY_LOCK_INTR | |
| size_t PyThread_get_stacksize() | |
| int PyThread_set_stacksize(size_t) | |
| # Thread Local Storage (TLS) API | |
| int PyThread_create_key() | |
| void PyThread_delete_key(int) | |
| int PyThread_set_key_value(int, void *) | |
| void * PyThread_get_key_value(int) | |
| void PyThread_delete_key_value(int key) | |
| # Cleanup after a fork | |
| void PyThread_ReInitTLS() |