summaryrefslogtreecommitdiff
path: root/indra/newview/llappviewer.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-08-12 19:49:13 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-08-13 16:56:31 +0300
commit655402192f9ef58650e6b6f9a01f5748747aa263 (patch)
tree23121b715765202515a5d2e6e82daaa5a7999bda /indra/newview/llappviewer.cpp
parent705d53b3e9065c766b63037d2209b9664c3d4d24 (diff)
#6119 Mutex deadlock on LLGridManager singleton
LLGridManager is performance critical and low level enough that it should just be turned into LLSimpleton. Without capture_dependency there won't be a 'deadlock'.
Diffstat (limited to 'indra/newview/llappviewer.cpp')
-rw-r--r--indra/newview/llappviewer.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 2d8e94fdda..d3df15a642 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2175,6 +2175,7 @@ bool LLAppViewer::cleanup()
LLWorld::deleteSingleton();
LLVoiceClient::deleteSingleton();
LLUI::deleteSingleton();
+ LLGridManager::deleteSingleton();
LLWatchdog::deleteSingleton();
// It's not at first obvious where, in this long sequence, a generic cleanup
@@ -3009,6 +3010,8 @@ bool LLAppViewer::initConfiguration()
}
}
+ LLGridManager::createInstance();
+
LLSLURL start_slurl;
if (!starting_location.empty())
{
@@ -3057,6 +3060,7 @@ bool LLAppViewer::initConfiguration()
// Do not save settings.
// Might be smarter to have an exit code for a more reliable
// "early exit, needs cleanup" case.
+ LLGridManager::deleteSingleton();
LLSingletonBase::deleteAll();
cleanupConsole();
delete mSettingsLocationList;
@@ -3117,6 +3121,7 @@ bool LLAppViewer::initConfiguration()
// Since returning 'false' is basically an error without cleanup,
// do cleanup here. No need to worry about marker files here.
+ LLGridManager::deleteSingleton();
LLSingletonBase::deleteAll();
cleanupConsole();
return false;