diff options
Diffstat (limited to 'source/Breakpoint/BreakpointLocationCollection.cpp')
| -rw-r--r-- | source/Breakpoint/BreakpointLocationCollection.cpp | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/source/Breakpoint/BreakpointLocationCollection.cpp b/source/Breakpoint/BreakpointLocationCollection.cpp index 5b6e746f911d..52698b2f15bb 100644 --- a/source/Breakpoint/BreakpointLocationCollection.cpp +++ b/source/Breakpoint/BreakpointLocationCollection.cpp @@ -26,7 +26,8 @@ using namespace lldb_private;  // BreakpointLocationCollection constructor  //----------------------------------------------------------------------  BreakpointLocationCollection::BreakpointLocationCollection() : -    m_break_loc_collection() +    m_break_loc_collection(), +    m_collection_mutex()  {  } @@ -40,6 +41,7 @@ BreakpointLocationCollection::~BreakpointLocationCollection()  void  BreakpointLocationCollection::Add(const BreakpointLocationSP &bp_loc)  { +    std::lock_guard<std::mutex> guard(m_collection_mutex);      BreakpointLocationSP old_bp_loc = FindByIDPair (bp_loc->GetBreakpoint().GetID(), bp_loc->GetID());      if (!old_bp_loc.get())          m_break_loc_collection.push_back(bp_loc); @@ -48,6 +50,7 @@ BreakpointLocationCollection::Add(const BreakpointLocationSP &bp_loc)  bool  BreakpointLocationCollection::Remove (lldb::break_id_t bp_id, lldb::break_id_t bp_loc_id)  { +    std::lock_guard<std::mutex> guard(m_collection_mutex);      collection::iterator pos = GetIDPairIterator(bp_id, bp_loc_id);    // Predicate      if (pos != m_break_loc_collection.end())      { @@ -117,6 +120,7 @@ BreakpointLocationCollection::FindByIDPair (lldb::break_id_t break_id, lldb::bre  BreakpointLocationSP  BreakpointLocationCollection::GetByIndex (size_t i)  { +    std::lock_guard<std::mutex> guard(m_collection_mutex);      BreakpointLocationSP stop_sp;      if (i < m_break_loc_collection.size())          stop_sp = m_break_loc_collection[i]; @@ -127,6 +131,7 @@ BreakpointLocationCollection::GetByIndex (size_t i)  const BreakpointLocationSP  BreakpointLocationCollection::GetByIndex (size_t i) const  { +    std::lock_guard<std::mutex> guard(m_collection_mutex);      BreakpointLocationSP stop_sp;      if (i < m_break_loc_collection.size())          stop_sp = m_break_loc_collection[i]; @@ -156,6 +161,7 @@ BreakpointLocationCollection::ShouldStop (StoppointCallbackContext *context)  bool   BreakpointLocationCollection::ValidForThisThread (Thread *thread)  { +    std::lock_guard<std::mutex> guard(m_collection_mutex);      collection::iterator pos,          begin = m_break_loc_collection.begin(),          end = m_break_loc_collection.end(); @@ -171,6 +177,7 @@ BreakpointLocationCollection::ValidForThisThread (Thread *thread)  bool   BreakpointLocationCollection::IsInternal () const  { +    std::lock_guard<std::mutex> guard(m_collection_mutex);      collection::const_iterator pos,          begin = m_break_loc_collection.begin(),          end = m_break_loc_collection.end(); @@ -191,6 +198,7 @@ BreakpointLocationCollection::IsInternal () const  void  BreakpointLocationCollection::GetDescription (Stream *s, lldb::DescriptionLevel level)  { +    std::lock_guard<std::mutex> guard(m_collection_mutex);      collection::iterator pos,          begin = m_break_loc_collection.begin(),          end = m_break_loc_collection.end();  | 
