diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2017-04-24 16:36:54 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2017-04-24 16:36:54 -0400 |
commit | d415e019a61cfd20bb1e254fbc9279f96047da85 (patch) | |
tree | 0456e4b55e8b1195a75723a861d0da35df535c48 /indra/llui | |
parent | 2a5c47eb083a55cccb60916263b3c2b5d8d9c4fe (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