Add a default timeout parameter to HHWheelTimer.
[folly.git] / folly / io / async / HHWheelTimer.cpp
index 366b5ee..1fd5e6d 100644 (file)
@@ -77,9 +77,11 @@ void HHWheelTimer::Callback::cancelTimeoutImpl() {
 
 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)
@@ -137,6 +139,12 @@ void HHWheelTimer::scheduleTimeout(Callback* callback,
   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]);