git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3310
e03df62e-2008-0410-955e-
edbf42e46eb7
void TickTimers(time_t TIME);
void AddTimer(InspTimer* T);
+void TickMissedTimers(time_t TIME);
{
expire_lines();
FOREACH_MOD(I_OnBackgroundTimer,OnBackgroundTimer(TIME));
+ TickMissedTimers(TIME);
expire_run = true;
continue;
}
}
}
+void TickMissedTimers(time_t TIME)
+{
+ for (time_t n = TIME-1; time_t n > TIME-120; n--)
+ {
+ timerlist::iterator found = Timers.find(n);
+ if (found != Timers.end())
+ {
+ timergroup* x = found->second;
+ for (timergroup::iterator y = x->begin(); y != x->end(); y++)
+ {
+ InspTimer* z = (InspTimer*)*y;
+ z->Tick(TIME);
+ delete z;
+ }
+
+ Timers.erase(found);
+ delete x;
+ }
+ }
+}
+
void AddTimer(InspTimer* T)
{
timergroup* x = NULL;