MAINT-1311 Thread safe handling of retries on mesh loading failures.
parent
460002b134
commit
a1d60fc219
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue