Fix usage of the double-checked locking (anti-)pattern in the cache manager singleton.

This commit is contained in:
Adam Reichold
2015-11-12 22:26:24 +01:00
parent 4272e2e167
commit f77ca41a6f

View File

@@ -30,18 +30,8 @@
CacheManager* CacheManager*
CacheManager::getInstance(void) CacheManager::getInstance(void)
{ {
static CacheManager* instance_ = 0; static CacheManager instance_;
return &instance_;
if ( instance_ == 0 ) {
static MyMutex smutex_;
MyMutex::MyLock lock(smutex_);
if ( instance_ == 0 ) {
instance_ = new CacheManager();
}
}
return instance_;
} }
void CacheManager::init () void CacheManager::init ()