Home | History | Annotate | Download | only in synchronization

Lines Matching refs:waiter

18 // waiter is either an async wait, in which case we have a Task and the
28 // firing a waiter and so we can store that pointer to find out which event
79 // This is a synchronous waiter. The thread is waiting on the given condition
82 class SyncWaiter : public WaitableEvent::Waiter {
256 // enqueued our waiter in them all.
296 // The locks of the WaitableEvents have been taken in order and the Waiter has
300 // None of the WaitableEvent locks are held. The Waiter has not been enqueued
307 size_t count, Waiter* waiter) {
319 const size_t r = EnqueueMany(waitables + 1, count - 1, waiter);
323 waitables[0].first->Enqueue(waiter);
350 for (std::list<Waiter*>::iterator
361 // Try to wake a single waiter. Return true if one was woken. Called with lock
377 // Add a waiter to the list of those waiting. Called with lock held.
379 void WaitableEvent::Enqueue(Waiter* waiter) {
380 kernel_->waiters_.push_back(waiter);
384 // Remove a waiter from the list of those waiting. Return true if the waiter was
387 bool WaitableEvent::WaitableEventKernel::Dequeue(Waiter* waiter, void* tag) {
388 for (std::list<Waiter*>::iterator
390 if (*i == waiter && (*i)->Compare(tag)) {