diff options
Diffstat (limited to 'lldb/source/Core/Broadcaster.cpp')
-rw-r--r-- | lldb/source/Core/Broadcaster.cpp | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/lldb/source/Core/Broadcaster.cpp b/lldb/source/Core/Broadcaster.cpp index fe1b7164d5d..1d264a6c675 100644 --- a/lldb/source/Core/Broadcaster.cpp +++ b/lldb/source/Core/Broadcaster.cpp @@ -40,22 +40,24 @@ Broadcaster::~Broadcaster() if (log) log->Printf ("%p Broadcaster::~Broadcaster(\"%s\")", this, m_broadcaster_name.AsCString()); - // Scope for "listeners_locker" - { - Mutex::Locker listeners_locker(m_listeners_mutex); - - // Make sure the listener forgets about this broadcaster. We do - // this in the broadcaster in case the broadcaster object initiates - // the removal. - - collection::iterator pos, end = m_listeners.end(); - for (pos = m_listeners.begin(); pos != end; ++pos) - pos->first->BroadcasterWillDestruct (this); - - m_listeners.clear(); - } + Clear(); } +void +Broadcaster::Clear() +{ + Mutex::Locker listeners_locker(m_listeners_mutex); + + // Make sure the listener forgets about this broadcaster. We do + // this in the broadcaster in case the broadcaster object initiates + // the removal. + + collection::iterator pos, end = m_listeners.end(); + for (pos = m_listeners.begin(); pos != end; ++pos) + pos->first->BroadcasterWillDestruct (this); + + m_listeners.clear(); +} const ConstString & Broadcaster::GetBroadcasterName () { |