Commit 0023f343 authored by Juho Snellman's avatar Juho Snellman

Consistently use "event" instead of "timer"

parent fd735c8c
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
// between efficiency of one operation at a low occupancy rate and // between efficiency of one operation at a low occupancy rate and
// another operation at a high rate, we choose the latter. // another operation at a high rate, we choose the latter.
// - Tries to minimize the cost of event rescheduling or cancelation, // - Tries to minimize the cost of event rescheduling or cancelation,
// on the assumption that a large percentage of timers will never // on the assumption that a large percentage of events will never
// run. The implementation tries avoids unnecessary work when an // be triggered. The implementation tries avoids unnecessary work when an
// event is rescheduled, and provides a way for the user specify a // event is rescheduled, and provides a way for the user specify a
// range of acceptable execution times instead of just an exact one. // range of acceptable execution times instead of just an exact one.
// - An interface that at least the author finds more convenient than // - An interface that at least the author finds more convenient than
...@@ -62,15 +62,15 @@ public: ...@@ -62,15 +62,15 @@ public:
cancel(); cancel();
} }
// Unschedule this timer. It's safe to cancel a timer that is inactive. // Unschedule this event. It's safe to cancel an event that is inactive.
void cancel(); void cancel();
// Return true iff the timer is currently scheduled for execution. // Return true iff the event is currently scheduled for execution.
bool active() const { bool active() const {
return slot_ != NULL; return slot_ != NULL;
} }
// Return the absolute tick this timer is scheduled to be executed on. // Return the absolute tick this event is scheduled to be executed on.
Tick scheduled_at() const { return scheduled_at_; } Tick scheduled_at() const { return scheduled_at_; }
private: private:
...@@ -79,11 +79,11 @@ private: ...@@ -79,11 +79,11 @@ private:
friend TimerWheelSlot; friend TimerWheelSlot;
friend TimerWheel; friend TimerWheel;
// Implement in subclasses. Executes the timer callback. // Implement in subclasses. Executes the event callback.
virtual void execute() = 0; virtual void execute() = 0;
void set_scheduled_at(Tick ts) { scheduled_at_ = ts; } void set_scheduled_at(Tick ts) { scheduled_at_ = ts; }
// Move the timer to another slot. (It's safe for either the current // Move the event to another slot. (It's safe for either the current
// or new slot to be NULL). // or new slot to be NULL).
void relink(TimerWheelSlot* slot); void relink(TimerWheelSlot* slot);
...@@ -117,7 +117,7 @@ private: ...@@ -117,7 +117,7 @@ private:
}; };
// An event that's specialized with a (static) member function of class T, // An event that's specialized with a (static) member function of class T,
// and a dynamic instance of T. Timer execution causes an invocation of the // and a dynamic instance of T. Event execution causes an invocation of the
// member function on the instance. // member function on the instance.
template<typename T, void(T::*MFun)() > template<typename T, void(T::*MFun)() >
class MemberTimerEvent : public TimerEventInterface { class MemberTimerEvent : public TimerEventInterface {
...@@ -181,8 +181,8 @@ public: ...@@ -181,8 +181,8 @@ public:
// Advance the TimerWheel by the specified number of ticks, and execute // Advance the TimerWheel by the specified number of ticks, and execute
// any events scheduled for execution at or before that time. // any events scheduled for execution at or before that time.
// - It is safe to cancel or schedule timers from within timer callbacks. // - It is safe to cancel or schedule events from within event callbacks.
// - During the execution of the callback the observable timer tick will // - During the execution of the callback the observable event tick will
// be the tick it was scheduled to run on; not the tick the clock will // be the tick it was scheduled to run on; not the tick the clock will
// be advanced to. // be advanced to.
// - Events will happen in order; all events scheduled for tick X will // - Events will happen in order; all events scheduled for tick X will
...@@ -201,15 +201,16 @@ public: ...@@ -201,15 +201,16 @@ public:
void schedule_in_range(TimerEventInterface* event, void schedule_in_range(TimerEventInterface* event,
Tick start, Tick end); Tick start, Tick end);
// Return the current tick value. Note that if the timers advance by // Return the current tick value. Note that if the time increases
// multiple ticks during a single call to advance(), the value of now() // by multiple ticks during a single call to advance(), during the
// will be the tick on which the timer was first run. Not the tick that // execution of the event callback now() will return the tick that
// the timer eventually will advance to. // the event was scheduled to run on.
Tick now() const { return now_; } Tick now() const { return now_; }
// Return the number of ticks remaining until the next timer will get // Return the number of ticks remaining until the next event will get
// executed. If the max parameter is passed, that will be the maximum // executed. If the max parameter is passed, that will be the maximum
// tick value that gets returned. // tick value that gets returned. The max parameter's value will also
// be returned if no events have been scheduled.
Tick ticks_to_next_event(const Tick& max = std::numeric_limits<Tick>::max()); Tick ticks_to_next_event(const Tick& max = std::numeric_limits<Tick>::max());
private: private:
...@@ -281,7 +282,7 @@ void TimerEventInterface::relink(TimerWheelSlot* new_slot) { ...@@ -281,7 +282,7 @@ void TimerEventInterface::relink(TimerWheelSlot* new_slot) {
} }
void TimerEventInterface::cancel() { void TimerEventInterface::cancel() {
// It's ok to cancel a timer that's not running. // It's ok to cancel a event that's not scheduled.
if (!slot_) { if (!slot_) {
return; return;
} }
...@@ -370,8 +371,8 @@ Tick TimerWheel::ticks_to_next_event(const Tick& max) { ...@@ -370,8 +371,8 @@ Tick TimerWheel::ticks_to_next_event(const Tick& max) {
// need to use now_. // need to use now_.
auto slot_index = (now_ + 1 + i) & MASK; auto slot_index = (now_ + 1 + i) & MASK;
// We've reached slot 0. In normal scheduling this would // We've reached slot 0. In normal scheduling this would
// mean advancing the next wheel and promoting or running // mean advancing the next wheel and promoting or executing
// those timers. So we need to look in that slot too // those events. So we need to look in that slot too
// before proceeding with the rest of this wheel. But we // before proceeding with the rest of this wheel. But we
// can't just accept those results outright, we need to // can't just accept those results outright, we need to
// check the best result there against the next slot on // check the best result there against the next slot on
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment