Lines Matching refs:previous
42 struct ck_spinlock_hclh *previous;
52 unowned->previous = NULL;
78 struct ck_spinlock_hclh *previous, *local_tail;
84 /* Make sure previous->previous doesn't appear to be NULL */
85 thread->previous = *local_queue;
90 /* Mark current request as last request. Save reference to previous request. */
91 previous = ck_pr_fas_ptr(local_queue, thread);
92 thread->previous = previous;
94 /* Wait until previous thread from the local queue is done with lock. */
96 if (previous->previous != NULL) {
97 while (ck_pr_load_uint(&previous->wait) == true &&
98 ck_pr_load_int(&previous->cluster_id) == thread->cluster_id &&
99 ck_pr_load_uint(&previous->splice) == false)
103 if (ck_pr_load_int(&previous->cluster_id) == thread->cluster_id &&
104 ck_pr_load_uint(&previous->splice) == false)
110 previous = ck_pr_fas_ptr(glob_queue, local_tail);
114 /* Wait until previous thread from the global queue is done with lock. */
115 while (ck_pr_load_uint(&previous->wait) == true)
125 struct ck_spinlock_hclh *previous;
134 previous = thread[0]->previous;
141 * Predecessor is guaranteed not to be spinning on previous request,
142 * so update caller to use previous structure. This allows successor
145 *thread = previous;