diff options
| author | akleshchev <117672381+akleshchev@users.noreply.github.com> | 2023-05-08 18:25:12 +0300 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-08 18:25:12 +0300 | 
| commit | db30ffc7cb01c021da693a035cf79cafa893c982 (patch) | |
| tree | 0dbce6ce1758f584a7f2637a0f8a15ffc8af69ef /indra/llimage/llimageworker.cpp | |
| parent | 5ce70325ce207e31317346f1ed1405a21259e6dd (diff) | |
| parent | 855cae27ccde4896509e3e22c68c441d6404ccfb (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.cpp | 23 | 
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: | 
