Scheduler: Add timerfd() kernel availability check
[senf.git] / Scheduler / Scheduler.cc
index f40bf69..9457743 100644 (file)
@@ -123,6 +123,18 @@ prefix_ bool senf::scheduler::empty()
         && detail::EventHookDispatcher::instance().empty();
 }
 
+prefix_ void senf::scheduler::hiresTimers()
+{
+#ifdef HAVE_TIMERFD
+    if (haveScalableHiresTimers())
+        detail::TimerDispatcher::instance().timerSource(
+            std::auto_ptr<detail::TimerSource>(new detail::TimerFDTimerSource()));
+    else
+#endif
+        detail::TimerDispatcher::instance().timerSource(
+            std::auto_ptr<detail::TimerSource>(new detail::POSIXTimerSource()));
+}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::schedulerLogTimeSource