summaryrefslogtreecommitdiff
path: root/indra/llimage/llimageworker.cpp
diff options
context:
space:
mode:
authorakleshchev <117672381+akleshchev@users.noreply.github.com>2023-05-08 18:25:12 +0300
committerGitHub <noreply@github.com>2023-05-08 18:25:12 +0300
commitdb30ffc7cb01c021da693a035cf79cafa893c982 (patch)
tree0dbce6ce1758f584a7f2637a0f8a15ffc8af69ef /indra/llimage/llimageworker.cpp
parent5ce70325ce207e31317346f1ed1405a21259e6dd (diff)
parent855cae27ccde4896509e3e22c68c441d6404ccfb (diff)
SL-19690 Merge pull request #207 from RyeMutt/shutdown-crash
Fix exceptions during shutdown causing early program termination
Diffstat (limited to 'indra/llimage/llimageworker.cpp')
-rw-r--r--indra/llimage/llimageworker.cpp23
1 files changed, 15 insertions, 8 deletions
diff --git a/indra/llimage/llimageworker.cpp b/indra/llimage/llimageworker.cpp
index 0093958e6d..9358a0ae2c 100644
--- a/indra/llimage/llimageworker.cpp
+++ b/indra/llimage/llimageworker.cpp
@@ -92,14 +92,21 @@ LLImageDecodeThread::handle_t LLImageDecodeThread::decodeImage(
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_TEXTURE;
- // Instantiate the ImageRequest right in the lambda, why not?
- mThreadPool->getQueue().post(
- [req = ImageRequest(image, discard, needs_aux, responder)]
- () mutable
- {
- auto done = req.processRequest();
- req.finishRequest(done);
- });
+ try
+ {
+ // Instantiate the ImageRequest right in the lambda, why not?
+ mThreadPool->getQueue().post(
+ [req = ImageRequest(image, discard, needs_aux, responder)]
+ () mutable
+ {
+ auto done = req.processRequest();
+ req.finishRequest(done);
+ });
+ }
+ catch (const LLThreadSafeQueueInterrupt&)
+ {
+ LL_DEBUGS() << "Tried to start decoding on shutdown" << LL_ENDL;
+ }
// It's important to our consumer (LLTextureFetchWorker) that we return a
// nonzero handle. It is NOT important that the nonzero handle be unique: