HHWheelTimer::HHWheelTimer(folly::EventBase* eventBase,
std::chrono::milliseconds intervalMS,
- AsyncTimeout::InternalEnum internal)
+ AsyncTimeout::InternalEnum internal,
+ std::chrono::milliseconds defaultTimeoutMS)
: AsyncTimeout(eventBase, internal)
, interval_(intervalMS)
+ , defaultTimeout_(defaultTimeoutMS)
, nextTick_(1)
, count_(0)
, catchupEveryN_(DEFAULT_CATCHUP_EVERY_N)
count_++;
}
+void HHWheelTimer::scheduleTimeout(Callback* callback) {
+ CHECK(std::chrono::milliseconds(-1) != defaultTimeout_)
+ << "Default timeout was not initialized";
+ scheduleTimeout(callback, defaultTimeout_);
+}
+
bool HHWheelTimer::cascadeTimers(int bucket, int tick) {
CallbackList cbs;
cbs.swap(buckets_[bucket][tick]);