diff options
Diffstat (limited to 'intern/audaspace/intern/AUD_ReferenceHandler.cpp')
-rw-r--r-- | intern/audaspace/intern/AUD_ReferenceHandler.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/intern/audaspace/intern/AUD_ReferenceHandler.cpp b/intern/audaspace/intern/AUD_ReferenceHandler.cpp index 24f645df761..3e9f6707262 100644 --- a/intern/audaspace/intern/AUD_ReferenceHandler.cpp +++ b/intern/audaspace/intern/AUD_ReferenceHandler.cpp @@ -29,3 +29,24 @@ #include "AUD_Reference.h" std::map<void*, unsigned int> AUD_ReferenceHandler::m_references; +pthread_mutex_t AUD_ReferenceHandler::m_mutex; +bool AUD_ReferenceHandler::m_mutex_initialised = false; + +pthread_mutex_t *AUD_ReferenceHandler::getMutex() +{ + if(!m_mutex_initialised) + { + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); + + pthread_mutex_init(&m_mutex, &attr); + + pthread_mutexattr_destroy(&attr); + + m_mutex_initialised = true; + } + + return &m_mutex; +} + |