diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-05-24 23:41:17 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-06-03 21:32:21 +0300 |
commit | 76ab0e277588d8f36e2188a8a67628b74eae50a7 (patch) | |
tree | d10dbf222fa722fe24b2227808186eb3b6d75727 /indra/newview | |
parent | 823f97ac59e4eb11746cc38d330c223313a5a8fa (diff) |
SL-15292 waitForChannel crash
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llvoicevivox.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp index 0503ba3f94..0e78e706bd 100644 --- a/indra/newview/llvoicevivox.cpp +++ b/indra/newview/llvoicevivox.cpp @@ -1339,6 +1339,11 @@ void LLVivoxVoiceClient::logoutOfVivox(bool wait) result = llcoro::suspendUntilEventOnWithTimeout(mVivoxPump, LOGOUT_ATTEMPT_TIMEOUT, timeoutResult); + if (sShuttingDown) + { + break; + } + LL_DEBUGS("Voice") << "event=" << ll_stream_notation_sd(result) << LL_ENDL; // Don't get confused by prior queued events -- note that it's // very important that mVivoxPump is an LLEventMailDrop, which @@ -1772,7 +1777,7 @@ bool LLVivoxVoiceClient::waitForChannel() if (sShuttingDown) { - logoutOfVivox(true); + logoutOfVivox(false); return false; } @@ -1864,9 +1869,9 @@ bool LLVivoxVoiceClient::waitForChannel() mIsProcessingChannels = false; - logoutOfVivox(true); + logoutOfVivox(!sShuttingDown /*bool wait*/); - if (mRelogRequested) + if (mRelogRequested && !sShuttingDown) { LL_DEBUGS("Voice") << "Relog Requested, restarting provisioning" << LL_ENDL; if (!provisionVoiceAccount()) |