LibraryLink Utilities  3.0.1
Modern C++ wrapper over LibraryLink and WSTP
ThreadPool.h File Reference

Definitions of two thread pool classes: basic with a single queue for all threads and more advanced one with local queues and work stealing. More...

Detailed Description

Definitions of two thread pool classes: basic with a single queue for all threads and more advanced one with local queues and work stealing.

Author
Rafal Chojna rafal.nosp@m.c@wo.nosp@m.lfram.nosp@m..com
#include <atomic>
#include <deque>
#include <functional>
#include <future>
#include <thread>
#include <type_traits>
#include <vector>
#include "LLU/Async/Queue.h"
#include "LLU/Async/Utilities.h"
#include "LLU/Async/WorkStealingQueue.h"
+ Include dependency graph for ThreadPool.h:

Go to the source code of this file.

Classes

class  LLU::Async::BasicThreadPool< Queue >
 Simple thread pool class with a single queue. More...
 
class  LLU::Async::GenericThreadPool< PoolQueue, LocalQueue >
 Thread pool class with support of per-thread queues and work stealing. More...
 

Namespaces

 LLU
 Main namespace of LibraryLink Utilities.
 

Type aliases

using LLU::BasicPool = Async::BasicThreadPool< Async::ThreadsafeQueue< Async::FunctionWrapper > >
 Alias for BasicThreadPool with ThreadsafeQueue storing Async::FunctionWrappers. More...
 
using LLU::ThreadPool = Async::GenericThreadPool< Async::ThreadsafeQueue< Async::FunctionWrapper >, Async::WorkStealingQueue< std::deque< Async::FunctionWrapper > >>
 Alias for GenericThreadPool with ThreadsafeQueue and WorkStealingQueue storing Async::FunctionWrappers. More...