Foundation
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Enumerations | Variables
ThreadPool.hpp File Reference
#include "AtomicQueue.hpp"
#include "Logging.hpp"
#include "Thread.hpp"
#include <algorithm>
#include <array>
#include <cmath>
#include <iterator>
#include <type_traits>

Go to the source code of this file.

Classes

struct  Foundation::Core::Job
 
struct  Foundation::Core::LambdaJob< Lambda, ReturnType, Args >
 
class  Foundation::Core::ThreadPool
 Atomic, lock-free Thread Pool implementation with fixed bounds. More...
 

Namespaces

namespace  Foundation
 
namespace  Foundation::Core
 Lock-free atomic primitives and implementations of data structures.
 

Typedefs

using Foundation::Core::JobQueue = MPMCQueue< UniquePtr< Job > >
 Backing job queue type for ThreadPool.
 
using Foundation::Core::JobQueues = std::array< JobQueue, kJobPriorityCount >
 

Enumerations

enum class  Foundation::Core::JobPriority : size_t { Foundation::Core::Low , Foundation::Core::Normal , Foundation::Core::High }
 

Variables

constexpr size_t Foundation::Core::kJobPriorityCount = static_cast<size_t>(JobPriority::High) + 1