diff --git a/lib/icinga/checkable-check.cpp b/lib/icinga/checkable-check.cpp index ca5b7ba71..9be429ec0 100644 --- a/lib/icinga/checkable-check.cpp +++ b/lib/icinga/checkable-check.cpp @@ -358,9 +358,12 @@ void Checkable::ProcessCheckResult(const CheckResult::Ptr& cr, const MessageOrig SetLastCheckResult(cr); if (GetProblem() != wasProblem) { - for (auto& service : host->GetServices()) { + auto services = host->GetServices(); + olock.Unlock(); + for (auto& service : services) { Service::OnHostProblemChanged(service, cr, origin); } + olock.Lock(); } }