Lines Matching defs:when

133     /// enabling trace output), so we don't miss any action when
196 // when+priority. All events in the same bin will be stored in a
209 Tick _when; //!< timestamp when event should be processed
219 /// more difficult. Thus we use a global counter value when
234 setWhen(Tick when, EventQueue *q)
236 _when = when;
298 * typically happens when events are descheduled or have been
373 * This member function is invoked when the event is processed
401 Tick when() const { return _when; }
418 return l.when() < r.when() ||
419 (l.when() == r.when() && l.priority() < r.priority());
425 return l.when() > r.when() ||
426 (l.when() == r.when() && l.priority() > r.priority());
432 return l.when() < r.when() ||
433 (l.when() == r.when() && l.priority() <= r.priority());
438 return l.when() > r.when() ||
439 (l.when() == r.when() && l.priority() >= r.priority());
445 return l.when() == r.when() && l.priority() == r.priority();
451 return l.when() != r.when() || l.priority() != r.priority();
464 * (EventQueue::service_mutex). The lock is always held when an event
508 * This lock is always taken when servicing events. It is assumed
515 * queue to support inter-thread communication when some
546 * example, be useful when performing IO across thread event
547 * queues when timing is not crucial (e.g., during fast
585 * the event queue lock to prevent deadlocks. For example, when
587 * prevent deadlocks from happening when another thread tries to
615 void schedule(Event *event, Tick when, bool global = false);
623 void reschedule(Event *event, Tick when, bool always = false);
625 Tick nextTick() const { return head->when(); }
636 serviceEvents(Tick when)
639 if (nextTick() > when)
646 //assert(head->when() >= when && "event scheduled in the past");
650 setCurTick(when);
671 * @param when Time of a delayed wakeup (if known). This parameter
676 virtual void wakeup(Tick when = (Tick)-1) { }
744 schedule(Event &event, Tick when)
746 eventq->schedule(&event, when);
756 reschedule(Event &event, Tick when, bool always = false)
758 eventq->reschedule(&event, when, always);
762 schedule(Event *event, Tick when)
764 eventq->schedule(event, when);
774 reschedule(Event *event, Tick when, bool always = false)
776 eventq->reschedule(event, when, always);
779 void wakeupEventQueue(Tick when = (Tick)-1)
781 eventq->wakeup(when);