Skip to content

Commit c6b7b2f

Browse files
committed
viewer#3070 Fix skin request not being counted for the total
1 parent c825050 commit c6b7b2f

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

indra/newview/llmeshrepository.cpp

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,7 @@ LLViewerFetchedTexture* LLMeshUploadThread::FindViewerTexture(const LLImportMate
550550

551551
std::atomic<S32> LLMeshRepoThread::sActiveHeaderRequests = 0;
552552
std::atomic<S32> LLMeshRepoThread::sActiveLODRequests = 0;
553+
std::atomic<S32> LLMeshRepoThread::sActiveSkinRequests = 0;
553554
U32 LLMeshRepoThread::sMaxConcurrentRequests = 1;
554555
S32 LLMeshRepoThread::sRequestLowWater = REQUEST2_LOW_WATER_MIN;
555556
S32 LLMeshRepoThread::sRequestHighWater = REQUEST2_HIGH_WATER_MIN;
@@ -674,7 +675,9 @@ class LLMeshSkinInfoHandler : public LLMeshHandlerBase
674675
LLMeshSkinInfoHandler(const LLUUID& id, U32 offset, U32 requested_bytes)
675676
: LLMeshHandlerBase(offset, requested_bytes),
676677
mMeshID(id)
677-
{}
678+
{
679+
LLMeshRepoThread::incActiveSkinRequests();
680+
}
678681
virtual ~LLMeshSkinInfoHandler();
679682

680683
protected:
@@ -1701,6 +1704,20 @@ void LLMeshRepoThread::decActiveHeaderRequests()
17011704
--LLMeshRepoThread::sActiveHeaderRequests;
17021705
}
17031706

1707+
//static
1708+
void LLMeshRepoThread::incActiveSkinRequests()
1709+
{
1710+
LLMutexLock lock(gMeshRepo.mThread->mMutex);
1711+
++LLMeshRepoThread::sActiveSkinRequests;
1712+
}
1713+
1714+
//static
1715+
void LLMeshRepoThread::decActiveSkinRequests()
1716+
{
1717+
LLMutexLock lock(gMeshRepo.mThread->mMutex);
1718+
--LLMeshRepoThread::sActiveSkinRequests;
1719+
}
1720+
17041721
//return false if failed to get header
17051722
bool LLMeshRepoThread::fetchMeshHeader(const LLVolumeParams& mesh_params, bool can_retry)
17061723
{
@@ -3448,6 +3465,7 @@ LLMeshSkinInfoHandler::~LLMeshSkinInfoHandler()
34483465
{
34493466
LL_WARNS(LOG_MESH) << "deleting unprocessed request handler (may be ok on exit)" << LL_ENDL;
34503467
}
3468+
LLMeshRepoThread::decActiveSkinRequests();
34513469
}
34523470

34533471
void LLMeshSkinInfoHandler::processFailure(LLCore::HttpStatus status)
@@ -4057,7 +4075,7 @@ void LLMeshRepository::notifyLoadedMeshes()
40574075
mUploadErrorQ.pop();
40584076
}
40594077

4060-
S32 active_count = LLMeshRepoThread::sActiveHeaderRequests + LLMeshRepoThread::sActiveLODRequests;
4078+
S32 active_count = LLMeshRepoThread::sActiveHeaderRequests + LLMeshRepoThread::sActiveLODRequests + LLMeshRepoThread::sActiveSkinRequests;
40614079
if (active_count < LLMeshRepoThread::sRequestLowWater)
40624080
{
40634081
S32 push_count = LLMeshRepoThread::sRequestHighWater - active_count;

indra/newview/llmeshrepository.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ class LLMeshRepoThread : public LLThread
330330

331331
static std::atomic<S32> sActiveHeaderRequests;
332332
static std::atomic<S32> sActiveLODRequests;
333+
static std::atomic<S32> sActiveSkinRequests;
333334
static U32 sMaxConcurrentRequests;
334335
static S32 sRequestLowWater;
335336
static S32 sRequestHighWater;
@@ -499,6 +500,8 @@ class LLMeshRepoThread : public LLThread
499500
static void decActiveLODRequests();
500501
static void incActiveHeaderRequests();
501502
static void decActiveHeaderRequests();
503+
static void incActiveSkinRequests();
504+
static void decActiveSkinRequests();
502505

503506
// Set the caps strings and preferred version for constructing
504507
// mesh fetch URLs.

0 commit comments

Comments
 (0)