summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-08-28 01:22:35 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-08-28 01:30:37 +0300
commita42045994dacbf687cb986d8f1a644f0399cffb5 (patch)
tree3ca0d77986c1874d4b79dbc3f05e7d929bc92733
parent2f52a37e6a240a4a950779f2ef769a4fbd3baaf5 (diff)
SL-13555 'Second Life quit unexpectedly' error message
-rw-r--r--indra/llmessage/llcoproceduremanager.cpp4
-rw-r--r--indra/newview/llappearancemgr.cpp13
-rw-r--r--indra/newview/llvoicevivox.cpp15
3 files changed, 30 insertions, 2 deletions
diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index 2494c31613..26684a4d9e 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -414,8 +414,10 @@ void LLCoprocedurePool::coprocedureInvokerCoro(
{
coproc->mProc(httpAdapter, coproc->mId);
}
- catch (const LLCoros::Stop &)
+ catch (const LLCoros::Stop &e)
{
+ LL_INFOS("LLCoros") << "coprocedureInvokerCoro terminating because "
+ << e.what() << LL_ENDL;
throw; // let toplevel handle this as LLContinueError
}
catch (...)
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 1a33059188..168b8eb47a 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -3582,6 +3582,10 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro(LLCoreHttpUtil::HttpCoroutineAd
}
llcoro::suspend();
+ if (LLApp::isQuitting())
+ {
+ return;
+ }
S32 retryCount(0);
bool bRetry;
do
@@ -3645,6 +3649,11 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro(LLCoreHttpUtil::HttpCoroutineAd
LLSD result = httpAdapter->postAndSuspend(httpRequest, url, postData);
+ if (LLApp::isQuitting())
+ {
+ return;
+ }
+
LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
@@ -3680,6 +3689,10 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro(LLCoreHttpUtil::HttpCoroutineAd
LL_WARNS("Avatar") << "Bake retry #" << retryCount << " in " << timeout << " seconds." << LL_ENDL;
llcoro::suspendUntilTimeout(timeout);
+ if (LLApp::isQuitting())
+ {
+ return;
+ }
bRetry = true;
continue;
}
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 970570b135..7b6d9613ac 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -1740,6 +1740,12 @@ bool LLVivoxVoiceClient::waitForChannel()
mIsProcessingChannels = true;
llcoro::suspend();
+ if (LLApp::isExiting())
+ {
+ mRelogRequested = false;
+ break;
+ }
+
if (mTuningMode)
{
performMicTuning();
@@ -1784,6 +1790,13 @@ bool LLVivoxVoiceClient::waitForChannel()
{
llcoro::suspendUntilTimeout(1.0);
}
+
+ if (LLApp::isExiting())
+ {
+ mRelogRequested = false;
+ break;
+ }
+
} while (mVoiceEnabled && !mRelogRequested);
LL_DEBUGS("Voice")
@@ -1813,7 +1826,7 @@ bool LLVivoxVoiceClient::waitForChannel()
<< " RelogRequested=" << mRelogRequested
<< " VoiceEnabled=" << mVoiceEnabled
<< LL_ENDL;
- return true;
+ return !LLApp::isExiting();
}
bool LLVivoxVoiceClient::runSession(const sessionStatePtr_t &session)