summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.h
diff options
context:
space:
mode:
authorMonty Brandenberg <monty@lindenlab.com>2013-12-06 16:02:53 -0500
committerMonty Brandenberg <monty@lindenlab.com>2013-12-06 16:02:53 -0500
commitea1f6a6343fe83f1352a8a839265c471640acdce (patch)
tree191405e3370bb870b7ec527503d562d2040f72b5 /indra/newview/llmeshrepository.h
parentda135de77dea24427f5e658ebac43b77c215cc9b (diff)
SH-4645 Viewer hangs on exit after cancelling a mesh upload.
Problem involved a 3-way livelock between the main, upload and decomposition threads. Viewer is shutting down but an upload is in the 'generate hulls' state. Main thread asks upload request to discard and spins waiting for it to finish. Upload thread is in generateHulls spinning waiting for the decomposition thread to process a mesh request. Decomposition thread is sleeping waiting for main thread to deliver work that upload thread has asked the decomposition thread to do.
Diffstat (limited to 'indra/newview/llmeshrepository.h')
-rwxr-xr-xindra/newview/llmeshrepository.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h
index 9d8b102110..39280bea3a 100755
--- a/indra/newview/llmeshrepository.h
+++ b/indra/newview/llmeshrepository.h
@@ -447,7 +447,7 @@ public:
bool mUploadTextures;
bool mUploadSkin;
bool mUploadJoints;
- BOOL mDiscarded;
+ volatile bool mDiscarded;
LLHost mHost;
std::string mWholeModelFeeCapability;
@@ -463,7 +463,7 @@ public:
virtual void run();
void preStart();
void discard() ;
- BOOL isDiscarded() const;
+ bool isDiscarded() const;
void generateHulls();