diff options
| author | 2022-05-17 11:35:14 +0100 | |
|---|---|---|
| committer | 2022-05-17 11:36:02 +0100 | |
| commit | 337b0bedc302a720cc8de101859e0142642e25d7 (patch) | |
| tree | 9d2b5f2f7677845d2333621ed299905f0a668233 /src/timer.cpp | |
| parent | Remove a variable that is unused because of the previous commit. (diff) | |
Only give timers a trigger time when they're actually registered.
Diffstat (limited to 'src/timer.cpp')
| -rw-r--r-- | src/timer.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/timer.cpp b/src/timer.cpp index 3a605f0e4..c66598f37 100644 --- a/src/timer.cpp +++ b/src/timer.cpp @@ -35,7 +35,7 @@ void Timer::SetInterval(unsigned long newinterval) } Timer::Timer(unsigned long secs_from_now, bool repeating) - : trigger(ServerInstance->Time() + secs_from_now) + : trigger(0) , secs(secs_from_now) , repeat(repeating) { @@ -43,7 +43,8 @@ Timer::Timer(unsigned long secs_from_now, bool repeating) Timer::~Timer() { - ServerInstance->Timers.DelTimer(this); + if (GetTrigger()) + ServerInstance->Timers.DelTimer(this); } void TimerManager::TickTimers() @@ -76,6 +77,7 @@ void TimerManager::DelTimer(Timer* t) { if (i->second == t) { + t->SetTrigger(0); Timers.erase(i); break; } @@ -84,5 +86,7 @@ void TimerManager::DelTimer(Timer* t) void TimerManager::AddTimer(Timer* t) { - Timers.emplace(t->GetTrigger(), t); + time_t trigger = ServerInstance->Time() + t->GetInterval(); + t->SetTrigger(trigger); + Timers.emplace(trigger, t); } |
