Some small documentation fixes
[senf.git] / PPI / IntervalTimer.cc
index ecda76d..287d88a 100644 (file)
@@ -28,6 +28,7 @@
 
 // Custom includes
 #include "Scheduler/Scheduler.hh"
+#include "EventManager.hh"
 
 //#include "IntervalTimer.mpp"
 #define prefix_
@@ -41,7 +42,7 @@
 
 prefix_ void senf::ppi::IntervalTimer::v_enable()
 {
-    info_.intervalStart = ClockService::now();
+    info_.intervalStart = manager().now();
     info_.number = 0;
     schedule();
 }
@@ -49,6 +50,7 @@ prefix_ void senf::ppi::IntervalTimer::v_enable()
 prefix_ void senf::ppi::IntervalTimer::v_disable()
 {
     Scheduler::instance().cancelTimeout(id_);
+    id_ = 0;
 }
 
 prefix_ void senf::ppi::IntervalTimer::schedule()
@@ -60,6 +62,8 @@ prefix_ void senf::ppi::IntervalTimer::schedule()
 prefix_ void senf::ppi::IntervalTimer::cb()
 {
     callback(info_, info_.expected);
+    if (! enabled())
+        return;
     ++ info_.number;
     if (info_.number >= eventsPerInterval_) {
         info_.number = 0;