summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRider Linden <rider@lindenlab.com>2026-02-06 14:22:13 -0800
committerRider Linden <rider@lindenlab.com>2026-02-06 14:23:51 -0800
commita0a59882c19f48d62459bf03ad28dfb7975e0dd0 (patch)
tree856ca760410f8810c8381783abbb1a82c3e6098d
parent9d85a77647c47a049841b213e0fce97223898853 (diff)
fetchKeywordsFileCoro would invoke loadKeywordsIntoLLSD as part of the coroutine. This would trigger an attempt to get a mutex which will fail in a coro. Instead post the cleanup back to the mainthread.
-rw-r--r--indra/newview/llsyntaxid.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index d9b2726992..16274f59bc 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -148,9 +148,14 @@ void LLSyntaxIdLSL::fetchKeywordsFileCoro(std::string url, std::string fileSpec)
if (isSupportedVersion(result))
{
- setKeywordsXml(result);
- cacheFile(fileSpec, result);
- loadKeywordsIntoLLSD();
+ // Shuttle this task to the main coro/worker.
+ // loadKeywordsIntoLLSD will attempt to get a mutex which is not coro aware.
+ LLAppViewer::instance()->postToMainCoro([this, result, fileSpec]()
+ {
+ setKeywordsXml(result);
+ cacheFile(fileSpec, result);
+ loadKeywordsIntoLLSD();
+ });
}
else
{