]> granicus.if.org Git - icinga2/commitdiff
Removed unused ThreadPool class.
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 14 Sep 2012 12:43:56 +0000 (14:43 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 14 Sep 2012 12:44:54 +0000 (14:44 +0200)
lib/base/Makefile.am
lib/base/i2-base.h
lib/base/threadpool.cpp [deleted file]
lib/base/threadpool.h [deleted file]

index 9301f5f722700d01c9be4123af74c7056e989f52..6a19ac323dd426b9c21153ec4ef192cbe2981286 100644 (file)
@@ -50,8 +50,6 @@ libbase_la_SOURCES =  \
        tcpserver.h \
        tcpsocket.cpp \
        tcpsocket.h \
-       threadpool.cpp \
-       threadpool.h \
        timer.cpp \
        timer.h \
        tlsclient.cpp \
index cf0c87212fd36a2fa8f2f515f4faaced6f6379a8..2f2a1a5993dcc397b384700b58d13c0417a5afa4 100644 (file)
@@ -189,7 +189,6 @@ namespace tuples = boost::tuples;
 #include "logger.h"
 #include "application.h"
 #include "component.h"
-#include "threadpool.h"
 #include "streamlogger.h"
 #include "sysloglogger.h"
 
diff --git a/lib/base/threadpool.cpp b/lib/base/threadpool.cpp
deleted file mode 100644 (file)
index b53f4aa..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/******************************************************************************
- * Icinga 2                                                                   *
- * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/)        *
- *                                                                            *
- * 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.             *
- ******************************************************************************/
-
-#include "i2-base.h"
-
-using namespace icinga;
-
-ThreadPool::ThreadPool(long numThreads)
-       : m_Alive(true)
-{
-       for (long i = 0; i < numThreads; i++)
-               m_Threads.create_thread(boost::bind(&ThreadPool::WorkerThreadProc, this));
-}
-
-ThreadPool::~ThreadPool(void)
-{
-       {
-               boost::mutex::scoped_lock lock(m_Lock);
-
-               m_Tasks.clear();
-
-               /* notify worker threads to exit */
-               m_Alive = false;
-               m_CV.notify_all();
-       }
-
-       m_Threads.join_all();
-}
-
-void ThreadPool::EnqueueTasks(list<ThreadPoolTask::Ptr>& tasks)
-{
-       {
-               boost::mutex::scoped_lock lock(m_Lock);
-               m_Tasks.splice(m_Tasks.end(), tasks, tasks.begin(), tasks.end());
-       }
-
-       m_CV.notify_all();
-}
-
-void ThreadPool::EnqueueTask(const ThreadPoolTask::Ptr& task)
-{
-       {
-               boost::mutex::scoped_lock lock(m_Lock);
-               m_Tasks.push_back(task);
-       }
-
-       m_CV.notify_one();
-}
-
-
-ThreadPoolTask::Ptr ThreadPool::DequeueTask(void)
-{
-       boost::mutex::scoped_lock lock(m_Lock);
-
-       while (m_Tasks.empty()) {
-               if (!m_Alive)
-                       return ThreadPoolTask::Ptr();
-
-               m_CV.wait(lock);
-       }
-
-       ThreadPoolTask::Ptr task = m_Tasks.front();
-       m_Tasks.pop_front();
-
-       return task;
-}
-
-void ThreadPool::WaitForTasks(void)
-{
-       boost::mutex::scoped_lock lock(m_Lock);
-
-       /* wait for all pending tasks */
-       while (!m_Tasks.empty())
-               m_CV.wait(lock);
-}
-
-void ThreadPool::WorkerThreadProc(void)
-{
-       while (true) {
-               ThreadPoolTask::Ptr task = DequeueTask();
-
-               if (!task)
-                       break;
-
-               task->Execute();
-       }
-}
-
-ThreadPool::Ptr ThreadPool::GetDefaultPool(void)
-{
-       static ThreadPool::Ptr threadPool;
-
-       if (!threadPool)
-               threadPool = boost::make_shared<ThreadPool>();
-
-       return threadPool;
-}
-
diff --git a/lib/base/threadpool.h b/lib/base/threadpool.h
deleted file mode 100644 (file)
index 7bb3b48..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/******************************************************************************
- * Icinga 2                                                                   *
- * Copyright (C) 2012 Icinga Development Team (http://www.icinga.org/)        *
- *                                                                            *
- * 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 THREADPOOL_H
-#define THREADPOOL_H
-
-namespace icinga
-{
-
-struct ThreadPoolTask
-{
-       typedef shared_ptr<ThreadPoolTask> Ptr;
-       typedef weak_ptr<ThreadPoolTask> WeakPtr;
-
-       virtual void Execute(void) = 0;
-};
-
-class I2_BASE_API ThreadPool : public Object
-{
-public:
-       typedef shared_ptr<ThreadPool> Ptr;
-       typedef weak_ptr<ThreadPool> WeakPtr;
-
-       ThreadPool(long maxThreads = 128);
-       ~ThreadPool(void);
-
-       static ThreadPool::Ptr GetDefaultPool(void);
-
-       void EnqueueTasks(list<ThreadPoolTask::Ptr>& tasks);
-       void EnqueueTask(const ThreadPoolTask::Ptr& task);
-       void WaitForTasks(void);
-
-private:
-       mutable boost::mutex m_Lock;
-       condition_variable m_CV;
-
-       list<ThreadPoolTask::Ptr> m_Tasks;
-
-       thread_group m_Threads;
-       bool m_Alive;
-
-       ThreadPoolTask::Ptr DequeueTask(void);
-       void WorkerThreadProc(void);
-};
-
-}
-
-#endif /* THREADPOOL_H */