Lines Matching refs:node
34 struct waiter node = { in cnd_timedwait() local
38 atomic_int* fut = &node.barrier; in cnd_timedwait()
41 node.next = c->_c_head; in cnd_timedwait()
42 c->_c_head = &node; in cnd_timedwait()
44 c->_c_tail = &node; in cnd_timedwait()
46 node.next->prev = &node; in cnd_timedwait()
64 oldstate = a_cas_shim(&node.state, WAITING, LEAVING); in cnd_timedwait()
83 if (c->_c_head == &node) in cnd_timedwait()
84 c->_c_head = node.next; in cnd_timedwait()
85 else if (node.prev) in cnd_timedwait()
86 node.prev->next = node.next; in cnd_timedwait()
87 if (c->_c_tail == &node) in cnd_timedwait()
88 c->_c_tail = node.prev; in cnd_timedwait()
89 else if (node.next) in cnd_timedwait()
90 node.next->prev = node.prev; in cnd_timedwait()
103 if (node.notify) { in cnd_timedwait()
104 if (atomic_fetch_add(node.notify, -1) == 1) in cnd_timedwait()
105 _zx_futex_wake(node.notify, 1); in cnd_timedwait()
109 lock(&node.barrier); in cnd_timedwait()
133 if (oldstate != WAITING && node.prev) { in cnd_timedwait()
137 unlock_requeue(&node.prev->barrier, &m->futex); in cnd_timedwait()