Lines Matching refs:lock
36 void futex_numa_32_lock(struct futex_numa_32 *lock) in futex_numa_32_lock() argument
40 .full = __atomic_load_n(&lock->full, __ATOMIC_RELAXED), in futex_numa_32_lock()
63 if (__atomic_compare_exchange_n(&lock->full, in futex_numa_32_lock()
78 futex2_wait(lock, new.val, fflags, NULL, 0); in futex_numa_32_lock()
82 void futex_numa_32_unlock(struct futex_numa_32 *lock) in futex_numa_32_unlock() argument
84 u32 val = __atomic_sub_fetch(&lock->val, N_LOCK, __ATOMIC_RELEASE); in futex_numa_32_unlock()
87 int woken = futex2_wake(lock, 1, fflags); in futex_numa_32_unlock()
90 __atomic_compare_exchange_n(&lock->val, &val, 0U, in futex_numa_32_unlock()
102 struct futex_numa_32 *lock; member
118 futex_numa_32_lock(args->lock); in threadfn()
126 node = args->lock->node; in threadfn()
127 futex_numa_32_unlock(args->lock); in threadfn()
150 futex2_wait(&args->lock->val, ~0U, fflags, NULL, 0); in contendfn()
158 static struct futex_numa_32 lock = { .val = 0, }; variable
201 args->lock = &lock; in main()
222 args->lock = &lock; in main()