summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2013-02-04 12:23:33 -0600
committerDave Parks <davep@lindenlab.com>2013-02-04 12:23:33 -0600
commit5a6983734572c6a72aa1af1fce8f2993e6e8c107 (patch)
tree23ef62a72c1dce0260f9b21b434001f2f2d77a65
parent2fa8205d4dfea3fd57bcdb2973805d110e38c44f (diff)
MAINT-2323 Fix for crash on shutodwn in mesh responder destructors
-rwxr-xr-xindra/newview/llmeshrepository.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 09003e3e53..1223615079 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -215,17 +215,19 @@ public:
~LLMeshHeaderResponder()
{
- if (!mProcessed && !LLApp::isQuitting())
- { //something went wrong, retry
- llwarns << "Timeout or service unavailable, retrying." << llendl;
- LLMeshRepository::sHTTPRetryCount++;
- LLMeshRepoThread::HeaderRequest req(mMeshParams);
- LLMutexLock lock(gMeshRepo.mThread->mMutex);
- gMeshRepo.mThread->mHeaderReqQ.push(req);
+ if (!LLApp::isQuitting())
+ {
+ if (!mProcessed)
+ { //something went wrong, retry
+ llwarns << "Timeout or service unavailable, retrying." << llendl;
+ LLMeshRepository::sHTTPRetryCount++;
+ LLMeshRepoThread::HeaderRequest req(mMeshParams);
+ LLMutexLock lock(gMeshRepo.mThread->mMutex);
+ gMeshRepo.mThread->mHeaderReqQ.push(req);
+ }
+ LLMeshRepoThread::decActiveHeaderRequests();
}
-
- LLMeshRepoThread::decActiveHeaderRequests();
}
virtual void completedRaw(U32 status, const std::string& reason,
@@ -252,13 +254,16 @@ public:
~LLMeshLODResponder()
{
- if (!mProcessed && !LLApp::isQuitting())
+ if (!LLApp::isQuitting())
{
- llwarns << "Killed without being processed, retrying." << llendl;
- LLMeshRepository::sHTTPRetryCount++;
- gMeshRepo.mThread->lockAndLoadMeshLOD(mMeshParams, mLOD);
+ if (!mProcessed)
+ {
+ llwarns << "Killed without being processed, retrying." << llendl;
+ LLMeshRepository::sHTTPRetryCount++;
+ gMeshRepo.mThread->lockAndLoadMeshLOD(mMeshParams, mLOD);
+ }
+ LLMeshRepoThread::decActiveLODRequests();
}
- LLMeshRepoThread::decActiveLODRequests();
}
virtual void completedRaw(U32 status, const std::string& reason,