OSQ_UNLOCKED_VAL
#define OSQ_LOCK_UNLOCKED { ATOMIC_INIT(OSQ_UNLOCKED_VAL) }
atomic_set(&lock->tail, OSQ_UNLOCKED_VAL);
return atomic_read(&lock->tail) != OSQ_UNLOCKED_VAL;
if (old == OSQ_UNLOCKED_VAL)
if (atomic_try_cmpxchg_release(&lock->tail, &curr, OSQ_UNLOCKED_VAL))
next = osq_wait_next(lock, node, OSQ_UNLOCKED_VAL);