diff options
| author | Dave Parks <davep@lindenlab.com> | 2013-02-04 12:23:33 -0600 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2013-02-04 12:23:33 -0600 | 
| commit | 5a6983734572c6a72aa1af1fce8f2993e6e8c107 (patch) | |
| tree | 23ef62a72c1dce0260f9b21b434001f2f2d77a65 /indra/newview | |
| parent | 2fa8205d4dfea3fd57bcdb2973805d110e38c44f (diff) | |
MAINT-2323 Fix for crash on shutodwn in mesh responder destructors
Diffstat (limited to 'indra/newview')
| -rwxr-xr-x | indra/newview/llmeshrepository.cpp | 33 | 
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, | 
