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@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