Electroneum
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
tools::thread_group::data Class Reference
Collaboration diagram for tools::thread_group::data:
Collaboration graph
[legend]

Classes

struct  node
 
struct  work
 

Public Member Functions

 data (std::size_t count)
 
 ~data () noexcept
 
std::size_t count () const noexcept
 
bool try_run_one () noexcept
 
void dispatch (std::function< void()> f)
 

Private Member Functions

std::unique_ptr< workget_next () noexcept
 Requires lock on mutex. More...
 
void run () noexcept
 Blocks until destructor is invoked, only call from thread. More...
 

Private Attributes

std::vector< boost::thread > threads
 
node head
 
nodelast
 
boost::condition_variable has_work
 
boost::mutex mutex
 
bool stop
 

Constructor & Destructor Documentation

◆ data()

tools::thread_group::data::data ( std::size_t  count)

◆ ~data()

tools::thread_group::data::~data ( )
noexcept

Member Function Documentation

◆ count()

std::size_t tools::thread_group::data::count ( ) const
inlinenoexcept

◆ dispatch()

void tools::thread_group::data::dispatch ( std::function< void()>  f)

◆ get_next()

std::unique_ptr< thread_group::data::work > tools::thread_group::data::get_next ( )
privatenoexcept

Requires lock on mutex.

◆ run()

void tools::thread_group::data::run ( )
privatenoexcept

Blocks until destructor is invoked, only call from thread.

◆ try_run_one()

bool tools::thread_group::data::try_run_one ( )
noexcept

Member Data Documentation

◆ has_work

boost::condition_variable tools::thread_group::data::has_work
private

◆ head

node tools::thread_group::data::head
private

◆ last

node* tools::thread_group::data::last
private

◆ mutex

boost::mutex tools::thread_group::data::mutex
private

◆ stop

bool tools::thread_group::data::stop
private

◆ threads

std::vector<boost::thread> tools::thread_group::data::threads
private

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