diff options
Diffstat (limited to 'indra/llcommon')
| -rw-r--r-- | indra/llcommon/llmutex.h | 42 | 
1 files changed, 36 insertions, 6 deletions
| diff --git a/indra/llcommon/llmutex.h b/indra/llcommon/llmutex.h index 077f810d61..cef58c1c9d 100644 --- a/indra/llcommon/llmutex.h +++ b/indra/llcommon/llmutex.h @@ -82,20 +82,14 @@ public:      void lockShared();      void lockExclusive();      template<bool SHARED> void lock(); -    template<> void lock<true>() { lockShared(); } -    template<> void lock<false>() { lockExclusive(); }      bool trylockShared();      bool trylockExclusive();      template<bool SHARED> bool trylock(); -    template<> bool trylock<true>() { return trylockShared(); } -    template<> bool trylock<false>() { return trylockExclusive(); }      void unlockShared();      void unlockExclusive();      template<bool SHARED> void unlock(); -    template<> void unlock<true>() { unlockShared(); } -    template<> void unlock<false>() { unlockExclusive(); }  private:      std::shared_mutex mSharedMutex; @@ -107,6 +101,42 @@ private:      using const_iterator = std::unordered_map<LLThread::id_t, U32>::const_iterator;  }; +template<> +inline void LLSharedMutex::lock<true>() +{ +    lockShared(); +} + +template<> +inline void LLSharedMutex::lock<false>() +{ +    lockExclusive(); +} + +template<> +inline bool LLSharedMutex::trylock<true>() +{ +    return trylockShared(); +} + +template<> +inline bool LLSharedMutex::trylock<false>() +{ +    return trylockExclusive(); +} + +template<> +inline void LLSharedMutex::unlock<true>() +{ +    unlockShared(); +} + +template<> +inline void LLSharedMutex::unlock<false>() +{ +    unlockExclusive(); +} +  // Actually a condition/mutex pair (since each condition needs to be associated with a mutex).  class LL_COMMON_API LLCondition : public LLMutex  { | 
