diff options
Diffstat (limited to 'indra/llmessage')
| -rw-r--r-- | indra/llmessage/llcoproceduremanager.h | 6 | ||||
| -rw-r--r-- | indra/llmessage/llexperiencecache.h | 3 | ||||
| -rw-r--r-- | indra/llmessage/llproxy.h | 8 | ||||
| -rw-r--r-- | indra/llmessage/message.cpp | 7 | ||||
| -rw-r--r-- | indra/llmessage/message.h | 7 | ||||
| -rw-r--r-- | indra/llmessage/tests/llhttpclient_test.cpp | 3 | ||||
| -rw-r--r-- | indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp | 3 | ||||
| -rw-r--r-- | indra/llmessage/tests/lltrustedmessageservice_test.cpp | 3 | ||||
| -rw-r--r-- | indra/llmessage/tests/networkio.h | 3 | 
9 files changed, 25 insertions, 18 deletions
| diff --git a/indra/llmessage/llcoproceduremanager.h b/indra/llmessage/llcoproceduremanager.h index 497367b80c..7d0e83180c 100644 --- a/indra/llmessage/llcoproceduremanager.h +++ b/indra/llmessage/llcoproceduremanager.h @@ -37,7 +37,8 @@ class LLCoprocedurePool;  class LLCoprocedureManager : public LLSingleton < LLCoprocedureManager >  { -    friend class LLSingleton < LLCoprocedureManager > ; +    LLSINGLETON(LLCoprocedureManager); +    virtual ~LLCoprocedureManager();  public:      typedef boost::function<U32(const std::string &)> SettingQuery_t; @@ -45,9 +46,6 @@ public:      typedef boost::function<void(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &, const LLUUID &id)> CoProcedure_t; -    LLCoprocedureManager(); -    virtual ~LLCoprocedureManager(); -      /// Places the coprocedure on the queue for processing.       ///       /// @param name Is used for debugging and should identify this coroutine. diff --git a/indra/llmessage/llexperiencecache.h b/indra/llmessage/llexperiencecache.h index 1002b33f80..8ee7080d38 100644 --- a/indra/llmessage/llexperiencecache.h +++ b/indra/llmessage/llexperiencecache.h @@ -43,7 +43,7 @@ class LLUUID;  class LLExperienceCache: public LLSingleton < LLExperienceCache >  { -    friend class LLSingleton < LLExperienceCache > ; +    LLSINGLETON(LLExperienceCache);  public:      typedef boost::function<std::string(const std::string &)> CapabilityQuery_t; @@ -103,7 +103,6 @@ public:      static const int PROPERTY_SUSPENDED;	// 1 << 7  private: -    LLExperienceCache();      virtual ~LLExperienceCache();      virtual void initSingleton(); diff --git a/indra/llmessage/llproxy.h b/indra/llmessage/llproxy.h index bd23dd39de..688dff7c83 100644 --- a/indra/llmessage/llproxy.h +++ b/indra/llmessage/llproxy.h @@ -218,14 +218,14 @@ enum LLSocks5AuthType   */  class LLProxy: public LLSingleton<LLProxy>  { -	LOG_CLASS(LLProxy); -public:  	/*###########################################################################################  	METHODS THAT DO NOT LOCK mProxyMutex!  	###########################################################################################*/  	// Constructor, cannot have parameters due to LLSingleton parent class. Call from main thread only. -	LLProxy(); +	LLSINGLETON(LLProxy); +	LOG_CLASS(LLProxy); +public:  	// Static check for enabled status for UDP packets. Call from main thread only.  	static bool isSOCKSProxyEnabled() { return sUDPProxyEnabled; } @@ -239,9 +239,11 @@ public:  	/*###########################################################################################  	METHODS THAT LOCK mProxyMutex! DO NOT CALL WHILE mProxyMutex IS LOCKED!  	###########################################################################################*/ +private:  	// Destructor, closes open connections. Do not call directly, use cleanupClass().  	~LLProxy(); +public:  	// Delete LLProxy singleton. Allows the apr_socket used in the SOCKS 5 control channel to be  	// destroyed before the call to apr_terminate. Call from main thread only.  	static void cleanupClass(); diff --git a/indra/llmessage/message.cpp b/indra/llmessage/message.cpp index 290b67feb3..6ef4025ab1 100644 --- a/indra/llmessage/message.cpp +++ b/indra/llmessage/message.cpp @@ -76,6 +76,7 @@  #include "v4math.h"  #include "lltransfertargetvfile.h"  #include "llcorehttputil.h" +#include "llpounceable.h"  // Constants  //const char* MESSAGE_LOG_FILENAME = "message.log"; @@ -1724,7 +1725,9 @@ std::ostream& operator<<(std::ostream& s, LLMessageSystem &msg)  	return s;  } -LLMessageSystem	*gMessageSystem = NULL; +// LLPounceable supports callWhenReady(), to permit clients to queue up (e.g.) +// callback registrations for when gMessageSystem is first assigned +LLPounceable<LLMessageSystem*, LLPounceableStatic> gMessageSystem;  // update appropriate ping info  void	process_complete_ping_check(LLMessageSystem *msgsystem, void** /*user_data*/) @@ -2641,7 +2644,7 @@ void end_messaging_system(bool print_summary)  			LL_INFOS("Messaging") << str.str().c_str() << LL_ENDL;  		} -		delete gMessageSystem; +		delete static_cast<LLMessageSystem*>(gMessageSystem);  		gMessageSystem = NULL;  	}  } diff --git a/indra/llmessage/message.h b/indra/llmessage/message.h index 133db620e6..f6c5d9e228 100644 --- a/indra/llmessage/message.h +++ b/indra/llmessage/message.h @@ -60,6 +60,7 @@  #include "llstoredmessage.h"  #include "boost/function.hpp" +#include "llpounceable.h"  const U32 MESSAGE_MAX_STRINGS_LENGTH = 64;  const U32 MESSAGE_NUMBER_OF_HASH_BUCKETS = 8192; @@ -68,10 +69,10 @@ const S32 MESSAGE_MAX_PER_FRAME = 400;  class LLMessageStringTable : public LLSingleton<LLMessageStringTable>  { -public: -	LLMessageStringTable(); +	LLSINGLETON(LLMessageStringTable);  	~LLMessageStringTable(); +public:  	char *getString(const char *str);  	U32	 mUsed; @@ -832,7 +833,7 @@ private:  // external hook into messaging system -extern LLMessageSystem	*gMessageSystem; +extern LLPounceable<LLMessageSystem*, LLPounceableStatic> gMessageSystem;  // Must specific overall system version, which is used to determine  // if a patch is available in the message template checksum verification. diff --git a/indra/llmessage/tests/llhttpclient_test.cpp b/indra/llmessage/tests/llhttpclient_test.cpp index a32bfa59ce..9356a14f1f 100644 --- a/indra/llmessage/tests/llhttpclient_test.cpp +++ b/indra/llmessage/tests/llhttpclient_test.cpp @@ -42,6 +42,7 @@  #include "lliosocket.h"  #include "stringize.h" +#include "llcleanup.h"  namespace tut  { @@ -66,7 +67,7 @@ namespace tut  		~HTTPClientTestData()  		{  			delete mClientPump; -			LLProxy::cleanupClass(); +			SUBSYSTEM_CLEANUP(LLProxy);  			apr_pool_destroy(mPool);  		} diff --git a/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp b/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp index 3b04530c1a..e20f61b73f 100644 --- a/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp +++ b/indra/llmessage/tests/lltemplatemessagedispatcher_test.cpp @@ -31,11 +31,12 @@  #include "llhost.h"  #include "message.h"  #include "llsd.h" +#include "llpounceable.h"  #include "llhost.cpp" // Needed for copy operator  #include "net.cpp" // Needed by LLHost. -LLMessageSystem * gMessageSystem = NULL; +LLPounceable<LLMessageSystem*, LLPounceableStatic> gMessageSystem;  // sensor test doubles  bool gClearRecvWasCalled = false; diff --git a/indra/llmessage/tests/lltrustedmessageservice_test.cpp b/indra/llmessage/tests/lltrustedmessageservice_test.cpp index 55748ad27e..41f982a7e2 100644 --- a/indra/llmessage/tests/lltrustedmessageservice_test.cpp +++ b/indra/llmessage/tests/lltrustedmessageservice_test.cpp @@ -33,8 +33,9 @@  #include "message.h"  #include "llmessageconfig.h"  #include "llhttpnode_stub.cpp" +#include "llpounceable.h" -LLMessageSystem* gMessageSystem = NULL; +LLPounceable<LLMessageSystem*, LLPounceableStatic> gMessageSystem;  LLMessageConfig::SenderTrust  LLMessageConfig::getSenderTrustedness(const std::string& msg_name) diff --git a/indra/llmessage/tests/networkio.h b/indra/llmessage/tests/networkio.h index 5eb739393f..5986524342 100644 --- a/indra/llmessage/tests/networkio.h +++ b/indra/llmessage/tests/networkio.h @@ -44,7 +44,7 @@  // init time. Use the lazy, on-demand initialization we get from LLSingleton.  class NetworkIO: public LLSingleton<NetworkIO>  { -public: +    LLSINGLETON(NetworkIO);      NetworkIO():          mServicePump(NULL),          mDone(false) @@ -69,6 +69,7 @@ public:                                                         boost::bind(&NetworkIO::done, this, _1));      } +public:      bool pump(F32 timeout=10)      {          // Reset the done flag so we don't pop out prematurely | 
