1 // This file is part of Eigen, a lightweight C++ template library 2 // for linear algebra. 3 // 4 // Copyright (C) 2016 Benoit Steiner <benoit.steiner.goog (a] gmail.com> 5 // 6 // This Source Code Form is subject to the terms of the Mozilla 7 // Public License v. 2.0. If a copy of the MPL was not distributed 8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 10 #ifndef EIGEN_CXX11_THREADPOOL_MODULE 11 #define EIGEN_CXX11_THREADPOOL_MODULE 12 13 #include "../../../Eigen/Core" 14 15 #include <Eigen/src/Core/util/DisableStupidWarnings.h> 16 17 /** \defgroup CXX11_ThreadPool_Module C++11 ThreadPool Module 18 * 19 * This module provides 2 threadpool implementations 20 * - a simple reference implementation 21 * - a faster non blocking implementation 22 * 23 * This module requires C++11. 24 * 25 * \code 26 * #include <Eigen/CXX11/ThreadPool> 27 * \endcode 28 */ 29 30 31 // The code depends on CXX11, so only include the module if the 32 // compiler supports it. 33 #if __cplusplus > 199711L || EIGEN_COMP_MSVC >= 1900 34 #include <cstddef> 35 #include <cstring> 36 #include <stdint.h> 37 #include <time.h> 38 39 #include <vector> 40 #include <atomic> 41 #include <condition_variable> 42 #include <deque> 43 #include <mutex> 44 #include <thread> 45 #include <functional> 46 #include <memory> 47 48 #include "src/util/CXX11Meta.h" 49 #include "src/util/MaxSizeVector.h" 50 51 #include "src/ThreadPool/ThreadLocal.h" 52 #include "src/ThreadPool/ThreadYield.h" 53 #include "src/ThreadPool/EventCount.h" 54 #include "src/ThreadPool/RunQueue.h" 55 #include "src/ThreadPool/ThreadPoolInterface.h" 56 #include "src/ThreadPool/ThreadEnvironment.h" 57 #include "src/ThreadPool/SimpleThreadPool.h" 58 #include "src/ThreadPool/NonBlockingThreadPool.h" 59 60 #endif 61 62 #include <Eigen/src/Core/util/ReenableStupidWarnings.h> 63 64 #endif // EIGEN_CXX11_THREADPOOL_MODULE 65 66