diff options
Diffstat (limited to 'lldb/source/Symbol/DWARFCallFrameInfo.cpp')
-rw-r--r-- | lldb/source/Symbol/DWARFCallFrameInfo.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lldb/source/Symbol/DWARFCallFrameInfo.cpp b/lldb/source/Symbol/DWARFCallFrameInfo.cpp index b8e8cde7151..edc6d151f04 100644 --- a/lldb/source/Symbol/DWARFCallFrameInfo.cpp +++ b/lldb/source/Symbol/DWARFCallFrameInfo.cpp @@ -293,9 +293,14 @@ DWARFCallFrameInfo::GetFDEIndex () { if (m_section_sp.get() == NULL || m_section_sp->IsEncrypted()) return; + if (m_fde_index_initialized) return; - + + Mutex::Locker locker(m_fde_index_mutex); + + if (m_fde_index_initialized) // if two threads hit the locker + return; dw_offset_t offset = 0; if (m_cfi_data_initialized == false) |