summaryrefslogtreecommitdiff
path: root/switchtimer_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'switchtimer_thread.c')
-rw-r--r--switchtimer_thread.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/switchtimer_thread.c b/switchtimer_thread.c
index bc7db11..d13f9a0 100644
--- a/switchtimer_thread.c
+++ b/switchtimer_thread.c
@@ -84,7 +84,7 @@ void cSwitchTimerThread::Action(void)
SwitchTimers.Lock();
LogFile.Log(3,"switch timer check started");
cSwitchTimer* switchTimer = SwitchTimers.First();
- while (switchTimer && m_Active)
+ while (switchTimer && m_Active && Running())
{
if (switchTimer->startTime - now < switchTimer->switchMinsBefore*60 + MSG_DELAY + 1)
{
@@ -128,7 +128,7 @@ void cSwitchTimerThread::Action(void)
}
}
- if (m_Active)
+ if (m_Active && Running())
Wait.Wait(1000 * MSG_DELAY);
}
SwitchTimers.Save();
@@ -138,12 +138,14 @@ void cSwitchTimerThread::Action(void)
}
SwitchTimers.Unlock();
LogFile.Log(3,"switch timer check finished");
- if (m_Active)
+ if (m_Active && Running())
Wait.Wait(1000 * MSG_DELAY);
m_lastUpdate = time(NULL);
nextUpdate = long(m_lastUpdate/60)*60+ 60 - MSG_DELAY ; // check at each full minute minus 5sec
if (SwitchTimers.Count() == 0)
m_Active = false;
+ if (!Running())
+ m_Active = false;
}
while (m_Active && time(NULL)%MSG_DELAY != 0) // sync heart beat to MSG_DELAY
Wait.Wait(1000);