MAINT-906 expiration time gets zeroes

master
andreykproductengine 2015-12-16 18:50:50 +02:00
parent 0e31f5cacc
commit 6ffe5d7bd3
1 changed files with 8 additions and 3 deletions

View File

@ -124,11 +124,17 @@ void LLWatchdogTimeout::setTimeout(F32 d)
void LLWatchdogTimeout::start(const std::string& state)
{
// Order of operation is very impmortant here.
if (mTimeout == 0)
{
LL_WARNS() << "Cant' start watchdog entry - no timeout set" << LL_ENDL;
return;
}
// Order of operation is very important here.
// After LLWatchdogEntry::start() is called
// LLWatchdogTimeout::isAlive() will be called asynchronously.
ping(state);
mTimer.start();
mTimer.start();
mTimer.setTimerExpirySec(mTimeout); // timer expiration set to 0 by start()
LLWatchdogEntry::start();
}
@ -235,7 +241,6 @@ void LLWatchdog::run()
mSuspects.end(),
std::not1(std::mem_fun(&LLWatchdogEntry::isAlive))
);
if(result != mSuspects.end())
{
// error!!!