summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2017-04-24 16:36:54 -0400
committerNat Goodspeed <nat@lindenlab.com>2017-04-24 16:36:54 -0400
commitd415e019a61cfd20bb1e254fbc9279f96047da85 (patch)
tree0456e4b55e8b1195a75723a861d0da35df535c48 /indra/llui
parent2a5c47eb083a55cccb60916263b3c2b5d8d9c4fe (diff)
DRTVWR-418: Remove final shutdown cleanup as a cause of crashes.
The recent LLSingleton work added a hook that would run during the C++ runtime's final destruction of static objects. When the LAST LLSingleton in any module was destroyed, its destructor would call LLSingletonBase::deleteAll(). That mechanism was intended to permit an application consuming LLSingletons to skip making an explicit deleteAll() call, knowing that all instantiated LLSingleton instances would eventually be cleaned up anyway. However -- experience proves that kicking off deleteAll() processing during the C++ runtime's final cleanup is too late. Too much has already been destroyed. That call tends to cause more shutdown crashes than it resolves. This commit deletes that whole mechanism. Going forward, if you want to clean up LLSingleton instances, you must explicitly call LLSingletonBase::deleteAll() during the application lifetime. If you don't, LLSingleton instances will simply be leaked -- which might be okay, considering the application is terminating anyway.
Diffstat (limited to 'indra/llui')
0 files changed, 0 insertions, 0 deletions