summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2012-11-09 14:43:25 -0600
committerDave Parks <davep@lindenlab.com>2012-11-09 14:43:25 -0600
commita1d60fc2193a70044d9cc689cffcadbf40743336 (patch)
tree0ce52d92256a7f530df1fe9340293599d13b6160 /indra
parent460002b134d1bd0f12e20ebdc8fecd1958cdb59f (diff)
MAINT-1311 Thread safe handling of retries on mesh loading failures.
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llmeshrepository.cpp7
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);
}