Lines Matching refs:node
44 void FutexWaitList::AddNode(FutexWaitListNode* node) {
45 DCHECK(node->prev_ == nullptr && node->next_ == nullptr);
47 tail_->next_ = node;
49 head_ = node;
52 node->prev_ = tail_;
53 node->next_ = nullptr;
54 tail_ = node;
58 void FutexWaitList::RemoveNode(FutexWaitListNode* node) {
59 if (node->prev_) {
60 node->prev_->next_ = node->next_;
62 head_ = node->next_;
65 if (node->next_) {
66 node->next_->prev_ = node->prev_;
68 tail_ = node->prev_;
71 node->prev_ = node->next_ = nullptr;
90 FutexWaitListNode* node = isolate->futex_wait_list_node();
92 node->backing_store_ = backing_store;
93 node->wait_addr_ = addr;
94 node->waiting_ = true;
119 wait_list_.Pointer()->AddNode(node);
124 bool interrupted = node->interrupted_;
125 node->interrupted_ = false;
141 // notification will wake up the condition variable. node->waiting() will
154 if (node->interrupted_) {
159 if (!node->waiting_) {
175 node->cond_.WaitFor(mutex_.Pointer(), time_until_timeout);
178 node->cond_.Wait(mutex_.Pointer());
184 wait_list_.Pointer()->RemoveNode(node);
185 node->waiting_ = false;
200 FutexWaitListNode* node = wait_list_.Pointer()->head_;
201 while (node && num_waiters_to_wake > 0) {
202 if (backing_store == node->backing_store_ && addr == node->wait_addr_) {
203 node->waiting_ = false;
204 node->cond_.NotifyOne();
209 node = node->next_;
234 FutexWaitListNode* node = wait_list_.Pointer()->head_;
235 while (node) {
236 if (backing_store == node->backing_store_ && addr == node->wait_addr_) {
238 node->waiting_ = false;
239 node->cond_.NotifyOne();
243 node->wait_addr_ = addr2;
247 node = node->next_;
263 FutexWaitListNode* node = wait_list_.Pointer()->head_;
264 while (node) {
265 if (backing_store == node->backing_store_ && addr == node->wait_addr_ &&
266 node->waiting_) {
270 node = node->next_;