X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FIntervalTimer.cc;h=e4dff937888dc4bbbbcd29179b5a91cda50f4082;hb=a1fdb7bb122f0b05be809a922d4b7ef5e125fa67;hp=507567edf60e35f4b61c804ecb3939287d1d45cd;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/PPI/IntervalTimer.cc b/PPI/IntervalTimer.cc index 507567e..e4dff93 100644 --- a/PPI/IntervalTimer.cc +++ b/PPI/IntervalTimer.cc @@ -42,6 +42,8 @@ prefix_ void senf::ppi::IntervalTimer::v_enable() { + if (eventsPerInterval_ <= 0) + return; info_.intervalStart = manager().now(); info_.number = 0; schedule(); @@ -49,14 +51,13 @@ prefix_ void senf::ppi::IntervalTimer::v_enable() prefix_ void senf::ppi::IntervalTimer::v_disable() { - Scheduler::instance().cancelTimeout(id_); - id_ = 0; + timer_.disable(); } prefix_ void senf::ppi::IntervalTimer::schedule() { info_.expected = info_.intervalStart + ( interval_ * (info_.number+1) ) / eventsPerInterval_; - id_ = Scheduler::instance().timeout(info_.expected, boost::bind(&IntervalTimer::cb,this)); + timer_.timeout(info_.expected); } prefix_ void senf::ppi::IntervalTimer::cb()