Index: src/liblogger/TMultiLoggerConfig.cpp =================================================================== diff -u -N -r12b36349f6214befeace08efa9acc7e03be0d847 -r8f634460db3f225ca24f2e447b3730d4f0614166 --- src/liblogger/TMultiLoggerConfig.cpp (.../TMultiLoggerConfig.cpp) (revision 12b36349f6214befeace08efa9acc7e03be0d847) +++ src/liblogger/TMultiLoggerConfig.cpp (.../TMultiLoggerConfig.cpp) (revision 8f634460db3f225ca24f2e447b3730d4f0614166) @@ -24,19 +24,7 @@ TLoggerLevelConfigPtr TMultiLoggerConfig::GetLoggerConfig(PCTSTR pszChannel, bool bForceAdd) { boost::upgrade_lock lock(m_mutex); - auto iterConfig = m_mapConfigs.find(pszChannel); - if (iterConfig == m_mapConfigs.end()) - { - if (bForceAdd) - { - boost::upgrade_to_unique_lock upgraded_lock(lock); - iterConfig = m_mapConfigs.insert(std::make_pair(pszChannel, std::make_shared())).first; - } - else - return GetLoggerConfig(lock, L"default", true); - } - - return iterConfig->second; + return GetLoggerConfig(lock, pszChannel, bForceAdd); } TLoggerLevelConfigPtr TMultiLoggerConfig::GetLoggerConfig(boost::upgrade_lock& lock, PCTSTR pszChannel, bool bForceAdd) @@ -50,7 +38,7 @@ iterConfig = m_mapConfigs.insert(std::make_pair(pszChannel, std::make_shared())).first; } else - return GetLoggerConfig(L"default", true); + return GetLoggerConfig(lock, L"default", true); } return iterConfig->second;