From a2f5b7a02cfe6a0c96584f3ae60e928955af5502 Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Tue, 19 Feb 2019 14:05:00 +0100 Subject: [PATCH] Revert "CheckerComponent#Stop(): wait for all running checks" This reverts commit 1eaad0637b75bd24875b1e62fd080fb155b08ed7. --- lib/base/defer.hpp | 59 -------------------------------- lib/checker/checkercomponent.cpp | 12 ------- lib/checker/checkercomponent.hpp | 3 -- 3 files changed, 74 deletions(-) delete mode 100644 lib/base/defer.hpp diff --git a/lib/base/defer.hpp b/lib/base/defer.hpp deleted file mode 100644 index 05ae0b819..000000000 --- a/lib/base/defer.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://icinga.com/) * - * * - * This program is free software; you can redistribute it and/or * - * modify it under the terms of the GNU General Public License * - * as published by the Free Software Foundation; either version 2 * - * of the License, or (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#ifndef DEFER -#define DEFER - -#include -#include - -namespace icinga -{ - -/** - * An action to be executed at end of scope. - * - * @ingroup base - */ -class Defer -{ -public: - inline - Defer(std::function func) : m_Func(std::move(func)) - { - } - - Defer(const Defer&) = delete; - Defer(Defer&&) = delete; - Defer& operator=(const Defer&) = delete; - Defer& operator=(Defer&&) = delete; - - inline - ~Defer() - { - m_Func(); - } - -private: - std::function m_Func; -}; - -} - -#endif /* DEFER */ diff --git a/lib/checker/checkercomponent.cpp b/lib/checker/checkercomponent.cpp index 8878a9d29..c14259b88 100644 --- a/lib/checker/checkercomponent.cpp +++ b/lib/checker/checkercomponent.cpp @@ -23,7 +23,6 @@ #include "icinga/cib.hpp" #include "remote/apilistener.hpp" #include "base/configtype.hpp" -#include "base/defer.hpp" #include "base/objectlock.hpp" #include "base/utility.hpp" #include "base/perfdatavalue.hpp" @@ -74,7 +73,6 @@ void CheckerComponent::Start(bool runtimeCreated) Log(LogInformation, "CheckerComponent") << "'" << GetName() << "' started."; - m_RunningChecks.store(0); m_Thread = std::thread(std::bind(&CheckerComponent::CheckThreadProc, this)); @@ -95,10 +93,6 @@ void CheckerComponent::Stop(bool runtimeRemoved) m_ResultTimer->Stop(); m_Thread.join(); - while (m_RunningChecks.load()) { - Utility::Sleep(1.0 / 60.0); - } - Log(LogInformation, "CheckerComponent") << "'" << GetName() << "' stopped."; @@ -213,8 +207,6 @@ void CheckerComponent::CheckThreadProc() Checkable::IncreasePendingChecks(); - m_RunningChecks.fetch_add(1); - Utility::QueueAsyncCallback(std::bind(&CheckerComponent::ExecuteCheckHelper, CheckerComponent::Ptr(this), checkable)); lock.lock(); @@ -223,10 +215,6 @@ void CheckerComponent::CheckThreadProc() void CheckerComponent::ExecuteCheckHelper(const Checkable::Ptr& checkable) { - Defer decrementRunningChecks ([this]{ - m_RunningChecks.fetch_sub(1); - }); - try { checkable->ExecuteCheck(); } catch (const std::exception& ex) { diff --git a/lib/checker/checkercomponent.hpp b/lib/checker/checkercomponent.hpp index 3c2753973..f69f5092e 100644 --- a/lib/checker/checkercomponent.hpp +++ b/lib/checker/checkercomponent.hpp @@ -25,13 +25,11 @@ #include "base/configobject.hpp" #include "base/timer.hpp" #include "base/utility.hpp" -#include #include #include #include #include #include -#include #include namespace icinga @@ -92,7 +90,6 @@ private: boost::condition_variable m_CV; bool m_Stopped{false}; std::thread m_Thread; - std::atomic m_RunningChecks; CheckableSet m_IdleCheckables; CheckableSet m_PendingCheckables; -- 2.40.0