X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FIntervalTimer.cc;h=507567edf60e35f4b61c804ecb3939287d1d45cd;hb=6ba573a99f93543ee32292f79865751b3e9b89a4;hp=766fc1692148c4ad806ad81fcd30a7c5215b890b;hpb=3d16600678b948ff3bd0e4fd2a1a800fcc629a03;p=senf.git diff --git a/PPI/IntervalTimer.cc b/PPI/IntervalTimer.cc index 766fc16..507567e 100644 --- a/PPI/IntervalTimer.cc +++ b/PPI/IntervalTimer.cc @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -27,7 +27,7 @@ //#include "IntervalTimer.ih" // Custom includes -#include "Scheduler/Scheduler.hh" +#include "../Scheduler/Scheduler.hh" #include "EventManager.hh" //#include "IntervalTimer.mpp" @@ -50,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() @@ -61,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;