simpleSearchManager: immediate search (same thread) for first/the only channel

This commit is contained in:
Matej Sekoranja
2014-03-22 22:11:43 +01:00
parent 45f5430baf
commit 5a5e49dd5d
@@ -107,13 +107,20 @@ void SimpleChannelSearchManagerImpl::registerSearchInstance(SearchInstance::shar
if (m_canceled.get())
return;
Lock guard(m_channelMutex);
//overrides if already registered
m_channels[channel->getSearchInstanceID()] = channel;
Lock guard2(m_userValueMutex);
int32_t& userValue = channel->getUserValue();
userValue = 1;
bool immediateTrigger;
{
Lock guard(m_channelMutex);
//overrides if already registered
m_channels[channel->getSearchInstanceID()] = channel;
immediateTrigger = m_channels.size() == 1;
Lock guard2(m_userValueMutex);
int32_t& userValue = channel->getUserValue();
userValue = 1;
}
if (immediateTrigger)
callback();
}
void SimpleChannelSearchManagerImpl::unregisterSearchInstance(SearchInstance::shared_pointer const & channel)