Release checker mutex before writing log message.

This commit is contained in:
Gunnar Beutner 2013-03-27 15:26:56 +00:00
parent 0c9f635c46
commit 1375c64ad9
1 changed files with 12 additions and 10 deletions

View File

@ -158,17 +158,19 @@ void CheckerComponent::ExecuteCheckHelper(const Service::Ptr& service)
Log(LogCritical, "checker", "Exception occured while checking service '" + service->GetName() + "': " + boost::diagnostic_information(ex)); Log(LogCritical, "checker", "Exception occured while checking service '" + service->GetName() + "': " + boost::diagnostic_information(ex));
} }
boost::mutex::scoped_lock lock(m_Mutex); {
boost::mutex::scoped_lock lock(m_Mutex);
/* remove the service from the list of pending services; if it's not in the /* remove the service from the list of pending services; if it's not in the
* list this was a manual (i.e. forced) check and we must not re-add the * list this was a manual (i.e. forced) check and we must not re-add the
* service to the services list because it's already there. */ * service to the services list because it's already there. */
CheckerComponent::ServiceSet::iterator it; CheckerComponent::ServiceSet::iterator it;
it = m_PendingServices.find(service); it = m_PendingServices.find(service);
if (it != m_PendingServices.end()) { if (it != m_PendingServices.end()) {
m_PendingServices.erase(it); m_PendingServices.erase(it);
m_IdleServices.insert(service); m_IdleServices.insert(service);
m_CV.notify_all(); m_CV.notify_all();
}
} }
Log(LogDebug, "checker", "Check finished for service '" + service->GetName() + "'"); Log(LogDebug, "checker", "Check finished for service '" + service->GetName() + "'");