Ardour  9.2-266-g5d535d4cb7
PBD::ThreadPool Class Reference

#include <thread_pool.h>

Public Member Functions

 ThreadPool (size_t num_threads)
 
 ~ThreadPool ()
 
void push (std::function< void()> task)
 

Private Attributes

std::vector< std::thread > _threads
 
std::queue< std::function< void()> > _queue
 
std::mutex _queue_lock
 
std::condition_variable _trigger
 
bool _run
 

Detailed Description

Definition at line 31 of file thread_pool.h.

Constructor & Destructor Documentation

◆ ThreadPool()

PBD::ThreadPool::ThreadPool ( size_t  num_threads)
inline

Definition at line 34 of file thread_pool.h.

◆ ~ThreadPool()

PBD::ThreadPool::~ThreadPool ( )
inline

Definition at line 62 of file thread_pool.h.

Member Function Documentation

◆ push()

void PBD::ThreadPool::push ( std::function< void()>  task)

Member Data Documentation

◆ _queue

std::queue<std::function<void ()> > PBD::ThreadPool::_queue
private

Definition at line 80 of file thread_pool.h.

◆ _queue_lock

std::mutex PBD::ThreadPool::_queue_lock
private

Definition at line 81 of file thread_pool.h.

◆ _run

bool PBD::ThreadPool::_run
private

Definition at line 83 of file thread_pool.h.

◆ _threads

std::vector<std::thread> PBD::ThreadPool::_threads
private

Definition at line 79 of file thread_pool.h.

◆ _trigger

std::condition_variable PBD::ThreadPool::_trigger
private

Definition at line 82 of file thread_pool.h.


The documentation for this class was generated from the following file: