Ardour  9.2-79-gba93f2fe52
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)
inline

Definition at line 76 of file thread_pool.h.

Member Data Documentation

◆ _queue

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

Definition at line 87 of file thread_pool.h.

◆ _queue_lock

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

Definition at line 88 of file thread_pool.h.

◆ _run

bool PBD::ThreadPool::_run
private

Definition at line 90 of file thread_pool.h.

◆ _threads

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

Definition at line 86 of file thread_pool.h.

◆ _trigger

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

Definition at line 89 of file thread_pool.h.


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