Lines Matching refs:lock
57 static inline void fastlock_init(fastlock_t *lock) in fastlock_init() argument
59 sem_init(&lock->sem, 0, 0); in fastlock_init()
60 atomic_store(&lock->cnt, 0); in fastlock_init()
62 static inline void fastlock_destroy(fastlock_t *lock) in fastlock_destroy() argument
64 sem_destroy(&lock->sem); in fastlock_destroy()
66 static inline void fastlock_acquire(fastlock_t *lock) in fastlock_acquire() argument
68 if (atomic_fetch_add(&lock->cnt, 1) > 0) in fastlock_acquire()
69 sem_wait(&lock->sem); in fastlock_acquire()
71 static inline void fastlock_release(fastlock_t *lock) in fastlock_release() argument
73 if (atomic_fetch_sub(&lock->cnt, 1) > 1) in fastlock_release()
74 sem_post(&lock->sem); in fastlock_release()