summaryrefslogtreecommitdiff
path: root/indra/llcommon/llwatchdog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon/llwatchdog.cpp')
-rw-r--r--indra/llcommon/llwatchdog.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/indra/llcommon/llwatchdog.cpp b/indra/llcommon/llwatchdog.cpp
index 886f19366c..ad7c2db62e 100644
--- a/indra/llcommon/llwatchdog.cpp
+++ b/indra/llcommon/llwatchdog.cpp
@@ -51,6 +51,7 @@ public:
{
mStopping = true;
mSleepMsecs = 1;
+ setQuitting();
}
void run() override
@@ -116,6 +117,11 @@ bool LLWatchdogTimeout::isAlive() const
return (mTimer.getStarted() && !mTimer.hasExpired());
}
+bool LLWatchdogTimeout::hasExpired() const
+{
+ return mTimer.hasExpired();
+}
+
bool LLWatchdogTimeout::started() const
{
return mTimer.getStarted();
@@ -225,11 +231,21 @@ void LLWatchdog::init(
mCrashOnFreeze = crash_on_freeze;
}
+void LLWatchdog::shutdown()
+{
+ if (mTimer)
+ {
+ mTimer->stop();
+ }
+}
+
void LLWatchdog::cleanup()
{
+ LL_PROFILE_ZONE_SCOPED;
if (mTimer)
{
mTimer->stop();
+ mTimer->shutdown();
delete mTimer;
mTimer = nullptr;
}