Lines Matching defs:queue
48 ck_spinlock_mcs_init(struct ck_spinlock_mcs **queue)
51 *queue = NULL;
57 ck_spinlock_mcs_trylock(struct ck_spinlock_mcs **queue,
66 r = ck_pr_cas_ptr(queue, NULL, node);
72 ck_spinlock_mcs_locked(struct ck_spinlock_mcs **queue)
76 r = ck_pr_load_ptr(queue) != NULL;
82 ck_spinlock_mcs_lock(struct ck_spinlock_mcs **queue,
97 * returns NULL, it means the queue was empty. If the queue was empty,
100 previous = ck_pr_fas_ptr(queue, node);
116 ck_spinlock_mcs_unlock(struct ck_spinlock_mcs **queue,
128 * mark the spinlock queue as empty.
130 if (ck_pr_load_ptr(queue) == node &&
131 ck_pr_cas_ptr(queue, node, NULL) == true) {
137 * is in-progress. In this case, busy-wait until the queue is