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() |