]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/timer.cpp
Merge branch 'master+tlsversion'
[user/henk/code/inspircd.git] / src / timer.cpp
index f098a5e6b5f78b6ea6285c58c9bad657ceb11530..0b0d8bac3664d93add0cffa572fc5666ba161403 100644 (file)
  */
 
 
-/* $Core */
-
 #include "inspircd.h"
-#include "timer.h"
 
 void Timer::SetInterval(time_t newinterval)
 {
-       ServerInstance->Timers->DelTimer(this);
+       ServerInstance->Timers.DelTimer(this);
        secs = newinterval;
        SetTrigger(ServerInstance->Time() + newinterval);
-       ServerInstance->Timers->AddTimer(this);
+       ServerInstance->Timers.AddTimer(this);
+}
+
+Timer::Timer(unsigned int secs_from_now, bool repeating)
+       : trigger(ServerInstance->Time() + secs_from_now)
+       , secs(secs_from_now)
+       , repeat(repeating)
+{
 }
 
 Timer::~Timer()
 {
-       ServerInstance->Timers->DelTimer(this);
+       ServerInstance->Timers.DelTimer(this);
 }
 
 void TimerManager::TickTimers(time_t TIME)
@@ -49,8 +53,9 @@ void TimerManager::TickTimers(time_t TIME)
                Timers.erase(i++);
 
                if (!t->Tick(TIME))
-                       delete t;
-               else if (t->GetRepeat())
+                       continue;
+
+               if (t->GetRepeat())
                {
                        t->SetTrigger(TIME + t->GetInterval());
                        AddTimer(t);