From e4350fb9ef1a44416f0ef7873595db41b05dafc4 Mon Sep 17 00:00:00 2001
From: Andrey Kleshchev <andreykproductengine@lindenlab.com>
Date: Wed, 19 Aug 2020 21:27:58 +0300
Subject: [PATCH] SL-13811 Crash on coroprocedure

Coroprosedure should stop on 'stop' exception
---
 indra/llmessage/llcoproceduremanager.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index 3f55bda1e3d..969cd162fbf 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -415,6 +415,14 @@ void LLCoprocedurePool::coprocedureInvokerCoro(
         {
             coproc->mProc(httpAdapter, coproc->mId);
         }
+        catch (const LLCoros::Stop &)
+        {
+            LL_INFOS("CoProcMgr") << "Viewer is shutting Down. Stopping coprocedure('" << coproc->mName
+                                   << "', id=" << coproc->mId.asString()
+                                   << ") in pool '" << mPoolName << "'" << LL_ENDL;
+            mActiveCoprocs.erase(itActive);
+            throw; // let toplevel handle this as LLContinueError
+        }
         catch (...)
         {
             LOG_UNHANDLED_EXCEPTION(STRINGIZE("Coprocedure('" << coproc->mName
-- 
GitLab