From 621cec966b8145b4fedd4d635c71ed20e7bed4ae Mon Sep 17 00:00:00 2001 From: Benety Goh Date: Thu, 8 Mar 2018 14:46:45 -0500 Subject: SERVER-33625 remove OldThreadPool --- src/mongo/util/concurrency/SConscript | 1 - src/mongo/util/concurrency/old_thread_pool.cpp | 83 -------------------------- src/mongo/util/concurrency/old_thread_pool.h | 76 ----------------------- 3 files changed, 160 deletions(-) delete mode 100644 src/mongo/util/concurrency/old_thread_pool.cpp delete mode 100644 src/mongo/util/concurrency/old_thread_pool.h (limited to 'src/mongo/util/concurrency') diff --git a/src/mongo/util/concurrency/SConscript b/src/mongo/util/concurrency/SConscript index 22f499389f9..5383653ac7b 100644 --- a/src/mongo/util/concurrency/SConscript +++ b/src/mongo/util/concurrency/SConscript @@ -7,7 +7,6 @@ env = env.Clone() env.Library( target='thread_pool', source=[ - 'old_thread_pool.cpp', 'thread_pool.cpp', ], LIBDEPS=[ diff --git a/src/mongo/util/concurrency/old_thread_pool.cpp b/src/mongo/util/concurrency/old_thread_pool.cpp deleted file mode 100644 index f253d1f4b05..00000000000 --- a/src/mongo/util/concurrency/old_thread_pool.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2009 10gen Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - * As a special exception, the copyright holders give permission to link the - * code of portions of this program with the OpenSSL library under certain - * conditions as described in each individual source file and distribute - * linked combinations including the program with the OpenSSL library. You - * must comply with the GNU Affero General Public License in all respects - * for all of the code used other than as permitted herein. If you modify - * file(s) with this exception, you may extend this exception to your - * version of the file(s), but you are not obligated to do so. If you do not - * wish to do so, delete this exception statement from your version. If you - * delete this exception statement from all source files in the program, - * then also delete it in the license file. - */ - -#define MONGO_LOG_DEFAULT_COMPONENT ::mongo::logger::LogComponent::kControl - -#include "mongo/platform/basic.h" - -#include "mongo/util/concurrency/old_thread_pool.h" - -#include "mongo/util/assert_util.h" -#include "mongo/util/mongoutils/str.h" - -namespace mongo { -namespace { - -ThreadPool::Options makeOptions(int nThreads, const std::string& threadNamePrefix) { - fassert(28706, nThreads > 0); - ThreadPool::Options options; - if (!threadNamePrefix.empty()) { - options.threadNamePrefix = threadNamePrefix; - options.poolName = str::stream() << threadNamePrefix << "Pool"; - } - options.maxThreads = options.minThreads = static_cast(nThreads); - return options; -} - -} // namespace - -OldThreadPool::OldThreadPool(int nThreads, const std::string& threadNamePrefix) - : OldThreadPool(DoNotStartThreadsTag(), nThreads, threadNamePrefix) { - startThreads(); -} - -OldThreadPool::OldThreadPool(const DoNotStartThreadsTag&, - int nThreads, - const std::string& threadNamePrefix) - : _pool(makeOptions(nThreads, threadNamePrefix)) {} - -std::size_t OldThreadPool::getNumThreads() const { - return _pool.getStats().numThreads; -} - -ThreadPool::Stats OldThreadPool::getStats() const { - return _pool.getStats(); -} - -void OldThreadPool::startThreads() { - _pool.startup(); -} - -void OldThreadPool::join() { - _pool.waitForIdle(); -} - -void OldThreadPool::schedule(Task task) { - fassert(28705, _pool.schedule(std::move(task))); -} - -} // namespace mongo diff --git a/src/mongo/util/concurrency/old_thread_pool.h b/src/mongo/util/concurrency/old_thread_pool.h deleted file mode 100644 index bd19a471d42..00000000000 --- a/src/mongo/util/concurrency/old_thread_pool.h +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright 2009 10gen Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - * As a special exception, the copyright holders give permission to link the - * code of portions of this program with the OpenSSL library under certain - * conditions as described in each individual source file and distribute - * linked combinations including the program with the OpenSSL library. You - * must comply with the GNU Affero General Public License in all respects - * for all of the code used other than as permitted herein. If you modify - * file(s) with this exception, you may extend this exception to your - * version of the file(s), but you are not obligated to do so. If you do not - * wish to do so, delete this exception statement from your version. If you - * delete this exception statement from all source files in the program, - * then also delete it in the license file. - */ - -#pragma once - -#include -#include - -#include "mongo/base/disallow_copying.h" -#include "mongo/stdx/functional.h" -#include "mongo/util/concurrency/thread_pool.h" - -namespace mongo { - -/** - * Implementation of a fixed-size pool of threads that can perform scheduled - * tasks. - * - * Deprecated. Use ThreadPool from thread_pool.h, instead. - */ -class OldThreadPool { - MONGO_DISALLOW_COPYING(OldThreadPool); - -public: - typedef stdx::function Task; // nullary function or functor - struct DoNotStartThreadsTag {}; - - explicit OldThreadPool(int nThreads = 8, const std::string& threadNamePrefix = ""); - explicit OldThreadPool(const DoNotStartThreadsTag&, - int nThreads = 8, - const std::string& threadNamePrefix = ""); - - std::size_t getNumThreads() const; - ThreadPool::Stats getStats() const; - - // Launches the worker threads; call exactly once, if and only if - // you used the DoNotStartThreadsTag form of the constructor. - void startThreads(); - - // blocks until all tasks are complete (tasks_remaining() == 0) - // does not prevent new tasks from being scheduled so could wait forever. - // Also, new tasks could be scheduled after this returns. - void join(); - - // task will be copied a few times so make sure it's relatively cheap - void schedule(Task task); - -private: - ThreadPool _pool; -}; - -} // namespace mongo -- cgit v1.2.1