summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-07-29 21:49:03 +0300
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2020-07-29 21:49:03 +0300
commita2b5f44b35deaf068aa39d76199b8c36d25b2da3 (patch)
treeb3e60d55162ad5dee791e6c405176b9320318977
parent370a82b7637e0d71239cee76301b943ea08506e0 (diff)
parent77f5a06a1e45f2aeb2f511675bcab7422b6f330d (diff)
Merge branch 'DRTVWR-476' into DRTVWR-501-maint
-rw-r--r--autobuild.xml10
-rw-r--r--indra/edit-me-to-trigger-new-build.txt4
-rw-r--r--indra/llmessage/llcoproceduremanager.cpp26
3 files changed, 26 insertions, 14 deletions
diff --git a/autobuild.xml b/autobuild.xml
index 32b10afd41..5d96fdfc50 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -3204,9 +3204,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
- <string>5ba21b80695975ab1e1b1c79d0f10c10</string>
+ <string>c5ab9d9d7482e48cd76f4bf391900a8c</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55879/522561/viewer_manager-2.0.539630-darwin64-539630.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/43369/385585/viewer_manager-2.0.531000-darwin64-531000.tar.bz2</string>
</map>
<key>name</key>
<string>darwin64</string>
@@ -3228,9 +3228,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
- <string>0f788eb745fc062ad737824836e48691</string>
+ <string>6b10d7407686d9e12e63576256581e3e</string>
<key>url</key>
- <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/55880/522567/viewer_manager-2.0.539630-windows-539630.tar.bz2</string>
+ <string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/43370/385592/viewer_manager-2.0.531000-windows-531000.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>
@@ -3241,7 +3241,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>source_type</key>
<string>hg</string>
<key>version</key>
- <string>2.0.539630</string>
+ <string>2.0.531000</string>
</map>
<key>vlc-bin</key>
<map>
diff --git a/indra/edit-me-to-trigger-new-build.txt b/indra/edit-me-to-trigger-new-build.txt
index fd40910d9e..e69de29bb2 100644
--- a/indra/edit-me-to-trigger-new-build.txt
+++ b/indra/edit-me-to-trigger-new-build.txt
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index a7bd836c4d..42c19e3b1c 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -280,11 +280,14 @@ LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size):
mHTTPPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID),
mCoroMapping()
{
- // store in our LLTempBoundListener so that when the LLCoprocedurePool is
- // destroyed, we implicitly disconnect from this LLEventPump
- mStatusListener = LLEventPumps::instance().obtain("LLApp").listen(
- poolName,
- [pendingCoprocs=mPendingCoprocs, poolName](const LLSD& status)
+ try
+ {
+ // store in our LLTempBoundListener so that when the LLCoprocedurePool is
+ // destroyed, we implicitly disconnect from this LLEventPump
+ // Monitores application status
+ mStatusListener = LLEventPumps::instance().obtain("LLApp").listen(
+ poolName + "_pool", // Make sure it won't repeat names from lleventcoro
+ [pendingCoprocs = mPendingCoprocs, poolName](const LLSD& status)
{
auto& statsd = status["status"];
if (statsd.asString() != "running")
@@ -298,6 +301,19 @@ LLCoprocedurePool::LLCoprocedurePool(const std::string &poolName, size_t size):
}
return false;
});
+ }
+ catch (const LLEventPump::DupListenerName &)
+ {
+ // This shounldn't be possible since LLCoprocedurePool is supposed to have unique names,
+ // yet it somehow did happen, as result pools got '_pool' suffix and this catch.
+ //
+ // If this somehow happens again it is better to crash later on shutdown due to pump
+ // not stopping coroutine and see warning in logs than on startup or during login.
+ LL_WARNS("CoProcMgr") << "Attempted to register dupplicate listener name: " << poolName
+ << "_pool. Failed to start listener." << LL_ENDL;
+
+ llassert(0); // Fix Me! Ignoring missing listener!
+ }
for (size_t count = 0; count < mPoolSize; ++count)
{