X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FTimerSource.hh;h=c52034838e301e8018f3c3241adb8d6c23bd0dc8;hb=3863d46dd898b7bc35ea8c6ccd8563b18762a6b6;hp=ae45048bc4480cd8ae3f2a7b386eee64faf98740;hpb=b76d83f9671e935cbd5f2c6873efae1f75d25dac;p=senf.git diff --git a/Scheduler/TimerSource.hh b/Scheduler/TimerSource.hh index ae45048..c520348 100644 --- a/Scheduler/TimerSource.hh +++ b/Scheduler/TimerSource.hh @@ -92,16 +92,31 @@ namespace detail { virtual void disable(); }; +#ifdef HAVE_TIMERFD class TimerFDTimerSource - : public TimerSource + : public detail::FdManager::Event, public TimerSource { public: + TimerFDTimerSource(); + ~TimerFDTimerSource(); + virtual void timeout(ClockService::clock_type timeout); virtual void notimeout(); virtual void enable(); virtual void disable(); + + static bool haveTimerFD(); + + private: + virtual void signal(int events); + void reschedule(); + + int timerfd_; + bool timeoutEnabled_; + ClockService::clock_type timeout_; }; +#endif }}}