From 9a764d8a08f11ab15ffd8d26566b22ced6490360 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Sun, 10 Nov 2013 16:53:57 +0100 Subject: [PATCH] Optimize signal calls. Refs #5049 --- components/checker/checkercomponent.h | 9 +-------- lib/icinga/notification.cpp | 2 +- lib/icinga/service-check.cpp | 20 +++++++++----------- lib/icinga/service-comment.cpp | 4 ++-- lib/icinga/service-downtime.cpp | 6 +++--- lib/icinga/service-flapping.cpp | 2 +- lib/icinga/service-notification.cpp | 4 ++-- lib/icinga/service.cpp | 5 ++--- 8 files changed, 21 insertions(+), 31 deletions(-) diff --git a/components/checker/checkercomponent.h b/components/checker/checkercomponent.h index a393328a0..b0e9a2f23 100644 --- a/components/checker/checkercomponent.h +++ b/components/checker/checkercomponent.h @@ -50,14 +50,7 @@ struct ServiceNextCheckExtractor if (!service->HasAuthority("checker")) return Utility::GetTime() + 60; - double next = service->GetNextCheck(); - - while (next == 0) { - service->UpdateNextCheck(); - next = service->GetNextCheck(); - } - - return next; + return service->GetNextCheck(); } }; diff --git a/lib/icinga/notification.cpp b/lib/icinga/notification.cpp index 36a734982..f6204ca18 100644 --- a/lib/icinga/notification.cpp +++ b/lib/icinga/notification.cpp @@ -130,7 +130,7 @@ void Notification::SetNextNotification(double time, const String& authority) { SetNextNotificationRaw(time); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnNextNotificationChanged), GetSelf(), time, authority)); + OnNextNotificationChanged(GetSelf(), time, authority); } void Notification::UpdateNotificationNumber(void) diff --git a/lib/icinga/service-check.cpp b/lib/icinga/service-check.cpp index 3a1152a35..45e98fc8a 100644 --- a/lib/icinga/service-check.cpp +++ b/lib/icinga/service-check.cpp @@ -94,7 +94,7 @@ void Service::SetNextCheck(double nextCheck, const String& authority) { SetNextCheckRaw(nextCheck); - Utility::QueueAsyncCallback(boost::bind(boost::ref(Service::OnNextCheckChanged), GetSelf(), nextCheck, authority)); + OnNextCheckChanged(GetSelf(), nextCheck, authority); } double Service::GetNextCheck(void) @@ -150,7 +150,7 @@ void Service::SetEnableActiveChecks(bool enabled, const String& authority) { SetOverrideEnableActiveChecks(enabled); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnEnableActiveChecksChanged), GetSelf(), enabled, authority)); + OnEnableActiveChecksChanged(GetSelf(), enabled, authority); } bool Service::GetEnablePassiveChecks(void) const @@ -165,7 +165,7 @@ void Service::SetEnablePassiveChecks(bool enabled, const String& authority) { SetOverrideEnablePassiveChecks(enabled); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnEnablePassiveChecksChanged), GetSelf(), enabled, authority)); + OnEnablePassiveChecksChanged(GetSelf(), enabled, authority); } bool Service::GetForceNextCheck(void) const @@ -177,7 +177,7 @@ void Service::SetForceNextCheck(bool forced, const String& authority) { SetForceNextCheckRaw(forced); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnForceNextCheckChanged), GetSelf(), forced, authority)); + OnForceNextCheckChanged(GetSelf(), forced, authority); } void Service::ProcessCheckResult(const CheckResult::Ptr& cr, const String& authority) @@ -367,15 +367,13 @@ void Service::ProcessCheckResult(const CheckResult::Ptr& cr, const String& autho // " threshold: " + Convert::ToString(GetFlappingThreshold()) + // "% current: " + Convert::ToString(GetFlappingCurrent()) + "%."); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnNewCheckResult), GetSelf(), cr, authority)); + OnNewCheckResult(GetSelf(), cr, authority); OnStateChanged(GetSelf()); - if (hardChange) { - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnStateChange), GetSelf(), cr, StateTypeHard, authority)); - } - else if (stateChange) { - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnStateChange), GetSelf(), cr, StateTypeSoft, authority)); - } + if (hardChange) + OnStateChange(GetSelf(), cr, StateTypeHard, authority); + else if (stateChange) + OnStateChange(GetSelf(), cr, StateTypeSoft, authority); if (call_eventhandler) ExecuteEventHandler(); diff --git a/lib/icinga/service-comment.cpp b/lib/icinga/service-comment.cpp index e07f2a08e..b06f4c25d 100644 --- a/lib/icinga/service-comment.cpp +++ b/lib/icinga/service-comment.cpp @@ -79,7 +79,7 @@ String Service::AddComment(CommentType entryType, const String& author, l_CommentsCache[uid] = GetSelf(); } - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnCommentAdded), GetSelf(), comment, authority)); + OnCommentAdded(GetSelf(), comment, authority); return uid; } @@ -126,7 +126,7 @@ void Service::RemoveComment(const String& id, const String& authority) l_CommentsCache.erase(id); } - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnCommentRemoved), owner, comment, authority)); + OnCommentRemoved(owner, comment, authority); } String Service::GetCommentIDFromLegacyID(int id) diff --git a/lib/icinga/service-downtime.cpp b/lib/icinga/service-downtime.cpp index 31a06f5e9..d1442239b 100644 --- a/lib/icinga/service-downtime.cpp +++ b/lib/icinga/service-downtime.cpp @@ -99,7 +99,7 @@ String Service::AddDowntime(const String& author, const String& comment, Log(LogWarning, "icinga", "added downtime with ID '" + Convert::ToString(downtime->GetLegacyId()) + "'."); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnDowntimeAdded), GetSelf(), downtime, authority)); + OnDowntimeAdded(GetSelf(), downtime, authority); return uid; } @@ -132,7 +132,7 @@ void Service::RemoveDowntime(const String& id, bool cancelled, const String& aut Log(LogWarning, "icinga", "removed downtime with ID '" + Convert::ToString(downtime->GetLegacyId()) + "' from service '" + owner->GetName() + "'."); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnDowntimeRemoved), owner, downtime, authority)); + OnDowntimeRemoved(owner, downtime, authority); } void Service::TriggerDowntimes(void) @@ -185,7 +185,7 @@ void Service::TriggerDowntime(const String& id) TriggerDowntime(tid); } - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnDowntimeTriggered), owner, downtime)); + OnDowntimeTriggered(owner, downtime); } String Service::GetDowntimeIDFromLegacyID(int id) diff --git a/lib/icinga/service-flapping.cpp b/lib/icinga/service-flapping.cpp index ac9a01b48..144b165a5 100644 --- a/lib/icinga/service-flapping.cpp +++ b/lib/icinga/service-flapping.cpp @@ -50,7 +50,7 @@ void Service::SetEnableFlapping(bool enabled, const String& authority) SetEnableFlappingRaw(enabled); OnFlappingChanged(GetSelf(), enabled ? FlappingEnabled : FlappingDisabled); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnEnableFlappingChanged), GetSelf(), enabled, authority)); + OnEnableFlappingChanged(GetSelf(), enabled, authority); } void Service::UpdateFlappingStatus(bool stateChange) diff --git a/lib/icinga/service-notification.cpp b/lib/icinga/service-notification.cpp index 491345940..77158fad1 100644 --- a/lib/icinga/service-notification.cpp +++ b/lib/icinga/service-notification.cpp @@ -171,7 +171,7 @@ void Service::SetEnableNotifications(bool enabled, const String& authority) { SetEnableNotificationsRaw(enabled); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnEnableNotificationsChanged), GetSelf(), enabled, authority)); + OnEnableNotificationsChanged(GetSelf(), enabled, authority); } bool Service::GetForceNextNotification(void) const @@ -183,5 +183,5 @@ void Service::SetForceNextNotification(bool forced, const String& authority) { SetForceNextNotificationRaw(forced); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnForceNextNotificationChanged), GetSelf(), forced, authority)); + OnForceNextNotificationChanged(GetSelf(), forced, authority); } diff --git a/lib/icinga/service.cpp b/lib/icinga/service.cpp index 9d526dc68..dbec5f49c 100644 --- a/lib/icinga/service.cpp +++ b/lib/icinga/service.cpp @@ -199,8 +199,7 @@ void Service::AcknowledgeProblem(const String& author, const String& comment, Ac OnNotificationsRequested(GetSelf(), NotificationAcknowledgement, GetLastCheckResult(), author, comment); - boost::function f = boost::bind(boost::ref(Service::OnAcknowledgementSet), GetSelf(), author, comment, type, expiry, authority); - Utility::QueueAsyncCallback(f); + OnAcknowledgementSet(GetSelf(), author, comment, type, expiry, authority); } void Service::ClearAcknowledgement(const String& authority) @@ -210,7 +209,7 @@ void Service::ClearAcknowledgement(const String& authority) SetAcknowledgementRaw(AcknowledgementNone); SetAcknowledgementExpiry(0); - Utility::QueueAsyncCallback(boost::bind(boost::ref(OnAcknowledgementCleared), GetSelf(), authority)); + OnAcknowledgementCleared(GetSelf(), authority); } std::set Service::GetParentHosts(void) const -- 2.40.0