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()) | 
