| 12345678910111213141516171819202122232425262728293031323334 |
- #include "threading_Lock.h"
- #include "PikaPlatformEx.h"
- void threading_RLock___del__(PikaObj* self) {
- pika_platform_thread_rtmutex_t* rm = obj_getPtr(self, "_rmutex_");
- pika_platform_thread_rtmutex_destroy(rm);
- pikaFree(rm, sizeof(pika_platform_thread_rtmutex_t));
- }
- void threading_RLock___init__(PikaObj* self) {
- pika_platform_thread_rtmutex_t* rm =
- pikaMalloc(sizeof(pika_platform_thread_rtmutex_t));
- pika_platform_thread_rtmutex_init(rm);
- obj_setPtr(self, "_rmutex_", rm);
- }
- pika_bool threading_RLock_acquire(PikaObj* self,
- pika_bool block,
- Arg* timeout) {
- pika_platform_thread_rtmutex_t* rm = obj_getPtr(self, "_rmutex_");
- int result = pika_platform_thread_rtmutex_lock(rm, block, timeout);
- return result == 0 ? pika_true : pika_false;
- }
- pika_bool threading_RLock_locked(PikaObj* self) {
- pika_platform_thread_rtmutex_t* rm = obj_getPtr(self, "_rmutex_");
- int result = pika_platform_thread_rtmutex_locked(rm);
- return result != 0 ? pika_true : pika_false;
- }
- void threading_RLock_release(PikaObj* self) {
- pika_platform_thread_rtmutex_t* rm = obj_getPtr(self, "_rmutex_");
- pika_platform_thread_rtmutex_unlock(rm);
- }
|