Add a default timeout parameter to HHWheelTimer.
[folly.git] / folly / io / async / HHWheelTimer.cpp
index 366b5eeb7a47e0f00f5bd91c8707d1e07671334f..1fd5e6d25d81b041bf691c154b610b63664bd456 100644 (file)
@@ -77,9 +77,11 @@ void HHWheelTimer::Callback::cancelTimeoutImpl() {
 
 HHWheelTimer::HHWheelTimer(folly::EventBase* eventBase,
                            std::chrono::milliseconds intervalMS,
 
 HHWheelTimer::HHWheelTimer(folly::EventBase* eventBase,
                            std::chrono::milliseconds intervalMS,
-                           AsyncTimeout::InternalEnum internal)
+                           AsyncTimeout::InternalEnum internal,
+                           std::chrono::milliseconds defaultTimeoutMS)
   : AsyncTimeout(eventBase, internal)
   , interval_(intervalMS)
   : AsyncTimeout(eventBase, internal)
   , interval_(intervalMS)
+  , defaultTimeout_(defaultTimeoutMS)
   , nextTick_(1)
   , count_(0)
   , catchupEveryN_(DEFAULT_CATCHUP_EVERY_N)
   , nextTick_(1)
   , count_(0)
   , catchupEveryN_(DEFAULT_CATCHUP_EVERY_N)
@@ -137,6 +139,12 @@ void HHWheelTimer::scheduleTimeout(Callback* callback,
   count_++;
 }
 
   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]);
 bool HHWheelTimer::cascadeTimers(int bucket, int tick) {
   CallbackList cbs;
   cbs.swap(buckets_[bucket][tick]);