| #ifndef LIBRT_THREADING_API_H |
| #define LIBRT_THREADING_API_H |
| |
| #include <stdbool.h> |
| |
| #include "librt_threading.h" |
| |
| int |
| import_librt_threading(void); |
| |
| extern void *LibRTThreading_API[LIBRT_THREADING_API_LEN]; |
| |
| #define LibRTThreading_ABIVersion (*(int (*)(void)) LibRTThreading_API[0]) |
| #define LibRTThreading_APIVersion (*(int (*)(void)) LibRTThreading_API[1]) |
| #define LibRTThreading_Lock_type_internal (*(PyTypeObject* (*)(void)) LibRTThreading_API[2]) |
| #define LibRTThreading_Lock_new_internal (*(PyObject* (*)(void)) LibRTThreading_API[3]) |
| #define LibRTThreading_Lock_acquire_internal (*(char (*)(PyObject *self)) LibRTThreading_API[4]) |
| #define LibRTThreading_Lock_release_internal (*(char (*)(PyObject *self)) LibRTThreading_API[5]) |
| #define LibRTThreading_Lock_locked_internal (*(char (*)(PyObject *self)) LibRTThreading_API[6]) |
| #define LibRTThreading_Lock_acquire_blocking_internal (*(char (*)(PyObject *self, char blocking)) LibRTThreading_API[7]) |
| |
| static inline bool CPyLock_Check(PyObject *obj) { |
| return Py_TYPE(obj) == LibRTThreading_Lock_type_internal(); |
| } |
| |
| #endif // LIBRT_THREADING_API_H |