Fix synchronization issue in Broadcaster::HijackBroadcaster.

llvm-svn: 228179
This commit is contained in:
Oleksiy Vyalov 2015-02-04 19:42:32 +00:00
parent 26e7ea6267
commit f31a77f6cd
2 changed files with 11 additions and 6 deletions

View File

@ -419,12 +419,7 @@ public:
HijackBroadcaster (Listener *listener, uint32_t event_mask = UINT32_MAX);
bool
IsHijackedForEvent (uint32_t event_mask)
{
if (m_hijacking_listeners.size() > 0)
return (event_mask & m_hijacking_masks.back()) != 0;
return false;
}
IsHijackedForEvent (uint32_t event_mask);
//------------------------------------------------------------------
/// Restore the state of the Broadcaster from a previous hijack attempt.

View File

@ -303,6 +303,16 @@ Broadcaster::HijackBroadcaster (Listener *listener, uint32_t event_mask)
return true;
}
bool
Broadcaster::IsHijackedForEvent (uint32_t event_mask)
{
Mutex::Locker event_types_locker(m_listeners_mutex);
if (!m_hijacking_listeners.empty())
return (event_mask & m_hijacking_masks.back()) != 0;
return false;
}
void
Broadcaster::RestoreBroadcaster ()
{