[icinga-checkins] icinga.org: icinga2/feature/checks-5049: Optimize signal calls.

git at icinga.org git at icinga.org
Sun Nov 10 16:56:25 CET 2013


Module: icinga2
Branch: feature/checks-5049
Commit: 9a764d8a08f11ab15ffd8d26566b22ced6490360
URL:    https://git.icinga.org/?p=icinga2.git;a=commit;h=9a764d8a08f11ab15ffd8d26566b22ced6490360

Author: Gunnar Beutner <gunnar at beutner.name>
Date:   Sun Nov 10 16:53:57 2013 +0100

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 a393328..b0e9a2f 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 36a7349..f6204ca 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 3a1152a..45e98fc 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 e07f2a0..b06f4c2 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 31a06f5..d144223 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 ac9a01b..144b165 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 4913459..77158fa 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 9d526dc..dbec5f4 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<void (void)> 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<Host::Ptr> Service::GetParentHosts(void) const





More information about the icinga-checkins mailing list