Lines Matching defs:waiter

199 	// enqueue in waiter list
200 rw_lock_waiter waiter;
201 waiter.thread = get_current_thread();
202 waiter.next = NULL;
203 waiter.writer = writer;
206 lock->waiters->last->next = &waiter;
208 lock->waiters = &waiter;
210 lock->waiters->last = &waiter;
230 rw_lock_waiter* waiter = lock->waiters;
231 if (waiter == NULL || lock->holder > 0)
235 if (waiter->writer) {
240 lock->waiters = waiter->next;
242 lock->waiters->last = waiter->last;
244 lock->holder = get_thread_id(waiter->thread);
247 _kern_unblock_thread(get_thread_id(waiter->thread), B_OK);
248 waiter->thread = NULL;
256 lock->waiters = waiter->next;
258 lock->waiters->last = waiter->last;
263 _kern_unblock_thread(get_thread_id(waiter->thread), B_OK);
264 waiter->thread = NULL;
265 } while ((waiter = lock->waiters) != NULL && !waiter->writer);
324 while (rw_lock_waiter* waiter = lock->waiters) {
326 lock->waiters = waiter->next;
329 _kern_unblock_thread(get_thread_id(waiter->thread), B_ERROR);
400 // enqueue in waiter list
401 rw_lock_waiter waiter;
402 waiter.thread = get_current_thread();
403 waiter.next = NULL;
404 waiter.writer = false;
407 lock->waiters->last->next = &waiter;
409 lock->waiters = &waiter;
411 lock->waiters->last = &waiter;
424 if (error == B_OK || waiter.thread == NULL) {
430 // We failed to get the lock -- dequeue from waiter list.
433 while (other != &waiter) {
440 lock->waiters = waiter.next;
442 lock->waiters->last = waiter.last;
445 previous->next = waiter.next;
446 if (lock->waiters->last == &waiter)
632 while (mutex_waiter* waiter = lock->waiters) {
634 lock->waiters = waiter->next;
637 _kern_unblock_thread(get_thread_id(waiter->thread), B_ERROR);
702 // enqueue in waiter list
703 mutex_waiter waiter;
704 waiter.thread = get_current_thread();
705 waiter.next = NULL;
708 lock->waiters->last->next = &waiter;
710 lock->waiters = &waiter;
712 lock->waiters->last = &waiter;
726 lock->holder = get_thread_id(waiter.thread);
753 mutex_waiter* waiter = lock->waiters;
754 if (waiter != NULL) {
755 // dequeue the first waiter
756 lock->waiters = waiter->next;
758 lock->waiters->last = waiter->last;
761 _kern_unblock_thread(get_thread_id(waiter->thread), B_OK);
768 lock->holder = get_thread_id(waiter->thread);