diff options
Diffstat (limited to 'indra/llcommon')
| -rw-r--r-- | indra/llcommon/llerror.cpp | 2 | ||||
| -rw-r--r-- | indra/llcommon/llerror.h | 14 | ||||
| -rw-r--r-- | indra/llcommon/llsingleton.h | 20 | 
3 files changed, 21 insertions, 15 deletions
| diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index bb64152407..c35799bbb9 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -379,7 +379,7 @@ namespace  	{  		/* This pattern, of returning a reference to a static function  		   variable, is to ensure that this global is constructed before -		   it is used, no matter what the global initializeation sequence +		   it is used, no matter what the global initialization sequence  		   is.  		   See C++ FAQ Lite, sections 10.12 through 10.14  		*/ diff --git a/indra/llcommon/llerror.h b/indra/llcommon/llerror.h index 4a42241c4f..b3e604f8e8 100644 --- a/indra/llcommon/llerror.h +++ b/indra/llcommon/llerror.h @@ -39,7 +39,7 @@  	Information for most users: -	Code can log messages with constuctions like this: +	Code can log messages with constructions like this:  		LL_INFOS("StringTag") << "request to fizzbip agent " << agent_id  			<< " denied due to timeout" << LL_ENDL; @@ -47,9 +47,9 @@  	Messages can be logged to one of four increasing levels of concern,  	using one of four "streams": -		LL_DEBUGS("StringTag")	- debug messages that are normally supressed -		LL_INFOS("StringTag")	- informational messages that are normall shown -		LL_WARNS("StringTag")	- warning messages that singal a problem +		LL_DEBUGS("StringTag")	- debug messages that are normally suppressed +		LL_INFOS("StringTag")	- informational messages that are normal shown +		LL_WARNS("StringTag")	- warning messages that signal a problem  		LL_ERRS("StringTag")	- error messages that are major, unrecoverable failures  	The later (LL_ERRS("StringTag")) automatically crashes the process after the message @@ -90,7 +90,7 @@  		WARN: LLFoo::doSomething: called with a big value for i: 283 -	Which messages are logged and which are supressed can be controled at run +	Which messages are logged and which are suppressed can be controlled at run  	time from the live file logcontrol.xml based on function, class and/or   	source file.  See etc/logcontrol-dev.xml for details. @@ -106,7 +106,7 @@ namespace LLError  	enum ELevel  	{  		LEVEL_ALL = 0, -			// used to indicate that all messagess should be logged +			// used to indicate that all messages should be logged  		LEVEL_DEBUG = 0,  		LEVEL_INFO = 1, @@ -220,7 +220,7 @@ namespace LLError  	// See top of file for example of how to use this  typedef LLError::NoClassInfo _LL_CLASS_TO_LOG; -	// Outside a class declartion, or in class without LOG_CLASS(), this +	// Outside a class declaration, or in class without LOG_CLASS(), this  	// typedef causes the messages to not be associated with any class. diff --git a/indra/llcommon/llsingleton.h b/indra/llcommon/llsingleton.h index 7aee1bb85f..00757be277 100644 --- a/indra/llcommon/llsingleton.h +++ b/indra/llcommon/llsingleton.h @@ -100,12 +100,6 @@ private:  		DELETED  	} EInitState; -	static void deleteSingleton() -	{ -		delete getData().mSingletonInstance; -		getData().mSingletonInstance = NULL; -	} -	  	// stores pointer to singleton instance  	// and tracks initialization state of singleton  	struct SingletonInstanceData @@ -120,7 +114,11 @@ private:  		~SingletonInstanceData()  		{ -			deleteSingleton(); +			SingletonInstanceData& data = getData(); +			if (data.mInitState != DELETED) +			{ +				deleteSingleton(); +			}  		}  	}; @@ -132,6 +130,14 @@ public:  		data.mInitState = DELETED;  	} +	// Can be used to control when the singleton is deleted.  Not normally needed. +	static void deleteSingleton() +	{ +		delete getData().mSingletonInstance; +		getData().mSingletonInstance = NULL; +		getData().mInitState = DELETED; +	} +  	static SingletonInstanceData& getData()  	{  		// this is static to cache the lookup results | 
