Generated on Thu Jan 16 2025 00:00:00 for Gecode by doxygen 1.14.0
Gecode::Support::RunJobs< Jobs, RetType >::Master Class Reference

#include <run-jobs.hpp>

Public Member Functions

Job< RetType > * next (int &i)
 Get next job witth index i, if possible.
void report (RetType r)
 Report result r by a worker.
void stop (RetType r, int i)
 Report that a job with index i has been stopped.
bool done (void) const
 Test whether all jobs are done.
 Master (Jobs &j, unsigned int m)
 Initialize with job iterator j and maximal number of threads m.
bool run (RetType &r)
 Run next job and return true if succesful and assign r to its result.
bool stopped (void) const
 Whether a job has thrown a JobStop exception.
int stoppedjob (RetType &r) const
 Return index of first job that has thrown a JobStop exception (-1 if none) with its result.
bool needthread (void)
 Whether a new thread is needed for deletion.
 ~Master (void)
 Destructor.

Protected Attributes

Mutex m
 Mutex for synchronizing access.
Event e
 Event is triggered if a the first job is added to queue.
unsigned int n_threads
 Number of threads currently not in use.
Jobs & jobs
 Input jobs.
int idx
 Index of next job to be created.
RetType sres
 Result from a the first stopped job (passed in exception)
int sidx
 Index of the first stop that has been stopped (-1 if none)
DynamicQueue< RetType, Heaprs
 Queue of not yet requested results.

Detailed Description

template<class Jobs, class RetType>
class Gecode::Support::RunJobs< Jobs, RetType >::Master

Definition at line 96 of file run-jobs.hpp.

Constructor & Destructor Documentation

◆ Master()

template<class Jobs, class RetType>
Gecode::Support::RunJobs< Jobs, RetType >::Master::Master ( Jobs & j,
unsigned int m )
inline

Initialize with job iterator j and maximal number of threads m.

Definition at line 258 of file run-jobs.hpp.

◆ ~Master()

template<class Jobs, class RetType>
Gecode::Support::RunJobs< Jobs, RetType >::Master::~Master ( void )
inline

Destructor.

Definition at line 316 of file run-jobs.hpp.

Member Function Documentation

◆ next()

template<class Jobs, class RetType>
Job< RetType > * Gecode::Support::RunJobs< Jobs, RetType >::Master::next ( int & i)
inline

Get next job witth index i, if possible.

Definition at line 200 of file run-jobs.hpp.

◆ report()

template<class Jobs, class RetType>
void Gecode::Support::RunJobs< Jobs, RetType >::Master::report ( RetType r)
inline

Report result r by a worker.

Definition at line 216 of file run-jobs.hpp.

◆ stop()

template<class Jobs, class RetType>
void Gecode::Support::RunJobs< Jobs, RetType >::Master::stop ( RetType r,
int i )
inline

Report that a job with index i has been stopped.

Definition at line 225 of file run-jobs.hpp.

◆ done()

template<class Jobs, class RetType>
bool Gecode::Support::RunJobs< Jobs, RetType >::Master::done ( void ) const
inline

Test whether all jobs are done.

Definition at line 252 of file run-jobs.hpp.

◆ run()

template<class Jobs, class RetType>
bool Gecode::Support::RunJobs< Jobs, RetType >::Master::run ( RetType & r)
inline

Run next job and return true if succesful and assign r to its result.

Definition at line 272 of file run-jobs.hpp.

◆ stopped()

template<class Jobs, class RetType>
bool Gecode::Support::RunJobs< Jobs, RetType >::Master::stopped ( void ) const
inline

Whether a job has thrown a JobStop exception.

Definition at line 194 of file run-jobs.hpp.

◆ stoppedjob()

template<class Jobs, class RetType>
int Gecode::Support::RunJobs< Jobs, RetType >::Master::stoppedjob ( RetType & r) const
inline

Return index of first job that has thrown a JobStop exception (-1 if none) with its result.

Definition at line 187 of file run-jobs.hpp.

◆ needthread()

template<class Jobs, class RetType>
bool Gecode::Support::RunJobs< Jobs, RetType >::Master::needthread ( void )
inline

Whether a new thread is needed for deletion.

Definition at line 303 of file run-jobs.hpp.

Member Data Documentation

◆ m

template<class Jobs, class RetType>
Mutex Gecode::Support::RunJobs< Jobs, RetType >::Master::m
protected

Mutex for synchronizing access.

Definition at line 99 of file run-jobs.hpp.

◆ e

template<class Jobs, class RetType>
Event Gecode::Support::RunJobs< Jobs, RetType >::Master::e
protected

Event is triggered if a the first job is added to queue.

Definition at line 101 of file run-jobs.hpp.

◆ n_threads

template<class Jobs, class RetType>
unsigned int Gecode::Support::RunJobs< Jobs, RetType >::Master::n_threads
protected

Number of threads currently not in use.

Definition at line 103 of file run-jobs.hpp.

◆ jobs

template<class Jobs, class RetType>
Jobs& Gecode::Support::RunJobs< Jobs, RetType >::Master::jobs
protected

Input jobs.

Definition at line 105 of file run-jobs.hpp.

◆ idx

template<class Jobs, class RetType>
int Gecode::Support::RunJobs< Jobs, RetType >::Master::idx
protected

Index of next job to be created.

Definition at line 107 of file run-jobs.hpp.

◆ sres

template<class Jobs, class RetType>
RetType Gecode::Support::RunJobs< Jobs, RetType >::Master::sres
protected

Result from a the first stopped job (passed in exception)

Definition at line 109 of file run-jobs.hpp.

◆ sidx

template<class Jobs, class RetType>
int Gecode::Support::RunJobs< Jobs, RetType >::Master::sidx
protected

Index of the first stop that has been stopped (-1 if none)

Definition at line 111 of file run-jobs.hpp.

◆ rs

template<class Jobs, class RetType>
DynamicQueue<RetType,Heap> Gecode::Support::RunJobs< Jobs, RetType >::Master::rs
protected

Queue of not yet requested results.

Definition at line 113 of file run-jobs.hpp.


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