diff options
author | Dave Parks <davep@lindenlab.com> | 2012-11-09 14:43:25 -0600 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2012-11-09 14:43:25 -0600 |
commit | a1d60fc2193a70044d9cc689cffcadbf40743336 (patch) | |
tree | 0ce52d92256a7f530df1fe9340293599d13b6160 /indra/newview | |
parent | 460002b134d1bd0f12e20ebdc8fecd1958cdb59f (diff) |
MAINT-1311 Thread safe handling of retries on mesh loading failures.
Diffstat (limited to 'indra/newview')
-rwxr-xr-x | indra/newview/llmeshrepository.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp index 4345434f65..5a29bb9e7b 100755 --- a/indra/newview/llmeshrepository.cpp +++ b/indra/newview/llmeshrepository.cpp @@ -683,7 +683,6 @@ void LLMeshRepoThread::lockAndLoadMeshLOD(const LLVolumeParams& mesh_params, S32 { if (!LLAppViewer::isQuitting()) { - LLMutexLock lock(mSignal); loadMeshLOD(mesh_params, lod); } } @@ -691,14 +690,13 @@ void LLMeshRepoThread::lockAndLoadMeshLOD(const LLVolumeParams& mesh_params, S32 void LLMeshRepoThread::loadMeshLOD(const LLVolumeParams& mesh_params, S32 lod) -{ //protected by mSignal, no locking needed here - +{ //could be called from any thread + LLMutexLock lock(mMutex); mesh_header_map::iterator iter = mMeshHeader.find(mesh_params.getSculptID()); if (iter != mMeshHeader.end()) { //if we have the header, request LOD byte range LODRequest req(mesh_params, lod); { - LLMutexLock lock(mMutex); mLODReqQ.push(req); LLMeshRepository::sLODProcessing++; } @@ -716,7 +714,6 @@ void LLMeshRepoThread::loadMeshLOD(const LLVolumeParams& mesh_params, S32 lod) } else { //if no header request is pending, fetch header - LLMutexLock lock(mMutex); mHeaderReqQ.push(req); mPendingLOD[mesh_params].push_back(lod); } |