diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-08-28 01:22:35 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-08-28 01:30:37 +0300 | 
| commit | a42045994dacbf687cb986d8f1a644f0399cffb5 (patch) | |
| tree | 3ca0d77986c1874d4b79dbc3f05e7d929bc92733 | |
| parent | 2f52a37e6a240a4a950779f2ef769a4fbd3baaf5 (diff) | |
SL-13555 'Second Life quit unexpectedly' error message
| -rw-r--r-- | indra/llmessage/llcoproceduremanager.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llappearancemgr.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llvoicevivox.cpp | 15 | 
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)  | 
