| Age | Commit message (Collapse) | Author | 
|---|
|  | Introduce LLSingleton::cleanupSingleton() canonical method as the place to put
any subclass cleanup logic that might take nontrivial realtime or throw an
exception. Neither is appropriate in a destructor.
Track all extant LLSingleton subclass instances on a master list, which
permits adding LLSingletonBase::cleanupAll() and deleteAll() methods.
Also notice when any LLSingleton subclass constructor (or initSingleton()
method) calls instance() or getInstance() for another LLSingleton, and capture
that other LLSingleton instance as a dependency of the first. This permits
cleanupAll() and deleteAll() to perform a dependency sort on the master list,
thus cleaning up (or deleting) leaf LLSingletons AFTER the LLSingletons that
depend on them.
Make C++ runtime's final static destructor call LLSingletonBase::deleteAll()
instead of deleting individual LLSingleton instances in arbitrary order.
Eliminate "llerror.h" from llsingleton.h, a longstanding TODO. | 
|  |  | 
|  | Remove evil getIfExists() method, used by no one.
Remove evil destroyed() method, used in exactly three places -- one of which
is a test. Replace with equally evil instanceExists() method, which is used
EVERYWHERE -- sigh. | 
|  | replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc. | 
|  |  | 
|  |  | 
|  | added comments to llsingleton.h | 
|  | fixed singleton unit test
resurrecting a singleton now properly calls initSingleton() | 
|  | more singleton cleanup to eliminate crashes on startup/exit | 
|  | fixed Mac crash related to non-reentrant singleton constructor | 
|  | fixed Mac crash related to non-reentrant singleton constructor | 
|  |  | 
|  |  | 
|  | potential fix for crasher
cleaned up llsingleton | 
|  |  | 
|  | made fast timer stack thread local
added LLThreadLocalSingleton
made LLThreadLocalPointer obey pointer rules for const
added LLThreadLocalSingletonPointer for fast thread local pointers | 
|  | * Removed check_curl_code and check_curl_multi_code from the global namespace.
 * Added comments documenting which thread the public methods of LLProxy should be called from.
 * Corrected grammar in LLSingleton.h
 * Fixed a buffer scope problem in llpacketring.cpp. | 
|  | Added a simple unit test to verify the functionality of the deleteSingleton method. | 
|  | LLProxy::applyProxySettings() | 
|  |  | 
|  | Also replaced many duplicate calls to LLViewerCamera::getInstance() with local pointer.
Reviewed with Ambroff | 
|  | rely on static initialization order.
reviewed by nat. | 
|  |  | 
|  | Singletons now keep their SingletonInstaceData in a big global map in the llcommon module. | 
|  | svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/skinning-18 into svn+ssh://svn.lindenlab.com/svn/linden/branches/viewer/viewer-2.0.0-3 | 
|  | ignore-dead-branch |