Index: lldb/source/DataFormatters/FormatManager.cpp =================================================================== --- lldb/source/DataFormatters/FormatManager.cpp +++ lldb/source/DataFormatters/FormatManager.cpp @@ -583,14 +583,19 @@ LanguageCategory * FormatManager::GetCategoryForLanguage(lldb::LanguageType lang_type) { - std::lock_guard guard(m_language_categories_mutex); - auto iter = m_language_categories_map.find(lang_type), - end = m_language_categories_map.end(); - if (iter != end) - return iter->second.get(); + { + std::lock_guard guard(m_language_categories_mutex); + auto iter = m_language_categories_map.find(lang_type), + end = m_language_categories_map.end(); + if (iter != end) + return iter->second.get(); + } LanguageCategory *lang_category = new LanguageCategory(lang_type); - m_language_categories_map[lang_type] = - LanguageCategory::UniquePointer(lang_category); + { + std::lock_guard guard(m_language_categories_mutex); + m_language_categories_map[lang_type] = + LanguageCategory::UniquePointer(lang_category); + } return lang_category; } Index: lldb/source/DataFormatters/TypeCategoryMap.cpp =================================================================== --- lldb/source/DataFormatters/TypeCategoryMap.cpp +++ lldb/source/DataFormatters/TypeCategoryMap.cpp @@ -25,8 +25,10 @@ } void TypeCategoryMap::Add(KeyType name, const ValueSP &entry) { - std::lock_guard guard(m_map_mutex); - m_map[name] = entry; + { + std::lock_guard guard(m_map_mutex); + m_map[name] = entry; + } if (listener) listener->Changed(); }