Geant4  10.07.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
VTaskGroup Class Reference
Inheritance diagram for VTaskGroup:
TaskGroup< Tp, Arg >

Public Types

template<typename Tp >
using container_type = std::vector< Tp >
 
template<typename Tp >
using list_type = std::vector< Tp >
 
typedef VTaskGroup this_type
 
typedef std::thread::id tid_type
 
typedef VTask task_type
 
typedef uintmax_t size_type
 
typedef Mutex lock_t
 
typedef std::atomic_intmax_t atomic_int
 
typedef std::atomic_uintmax_t atomic_uint
 
typedef Condition condition_t
 
typedef task_typetask_pointer
 
typedef container_type
< task_pointer
vtask_list_type
 

Public Member Functions

 VTaskGroup (ThreadPool *tp=nullptr)
 
virtual ~VTaskGroup ()
 
 VTaskGroup (const this_type &)=delete
 
 VTaskGroup (this_type &&rhs)=default
 
this_typeoperator= (const this_type &)=delete
 
this_typeoperator= (this_type &&rhs)=default
 
virtual void wait ()
 
intmax_t operator++ ()
 
intmax_t operator++ (int)
 
intmax_t operator-- ()
 
intmax_t operator-- (int)
 
intmax_t size () const
 
std::shared_ptr< condition_ttask_cond ()
 
const uintmax_t & id () const
 
void set_pool (ThreadPool *tp)
 
ThreadPool *& pool ()
 
ThreadPoolpool () const
 
void clear ()
 
virtual bool is_native_task_group () const
 
virtual bool is_master () const
 
virtual intmax_t pending ()
 

Static Public Member Functions

static void set_verbose (int level)
 

Protected Member Functions

atomic_inttask_count ()
 
const atomic_inttask_count () const
 

Static Protected Member Functions

static tid_type this_tid ()
 

Protected Attributes

uintmax_t m_id
 
ThreadPoolm_pool
 
std::shared_ptr< atomic_intm_tot_task_count = std::make_shared<atomic_int>(0)
 
std::shared_ptr< condition_tm_task_cond = std::make_shared<condition_t>()
 
std::shared_ptr< lock_tm_task_lock = std::make_shared<lock_t>()
 
tid_type m_main_tid
 
vtask_list_type vtask_list
 

Static Protected Attributes

static int f_verbose
 

Member Typedef Documentation

using container_type = std::vector<Tp>
using list_type = std::vector<Tp>
typedef std::thread::id tid_type
typedef VTask task_type
typedef uintmax_t size_type
typedef Mutex lock_t
typedef std::atomic_intmax_t atomic_int
typedef std::atomic_uintmax_t atomic_uint

Constructor & Destructor Documentation

VTaskGroup ( ThreadPool tp = nullptr)
explicit
virtual ~VTaskGroup ( )
virtual
VTaskGroup ( const this_type )
delete
VTaskGroup ( this_type &&  rhs)
default

Member Function Documentation

this_type& operator= ( const this_type )
delete
this_type& operator= ( this_type &&  rhs)
default
virtual void wait ( )
virtual
intmax_t operator++ ( )
intmax_t operator++ ( int  )
intmax_t operator-- ( )
intmax_t operator-- ( int  )
intmax_t size ( ) const
std::shared_ptr<condition_t> task_cond ( )
const uintmax_t& id ( ) const

References VTaskGroup::m_id.

void set_pool ( ThreadPool tp)
ThreadPool*& pool ( )

References VTaskGroup::m_pool.

ThreadPool* pool ( ) const

References VTaskGroup::m_pool.

void clear ( )
virtual bool is_native_task_group ( ) const
virtual
virtual bool is_master ( ) const
virtual
virtual intmax_t pending ( )
virtual
static void set_verbose ( int  level)
static

References VTaskGroup::f_verbose.

static tid_type this_tid ( )
staticprotected

Referenced by VTaskGroup::is_master().

atomic_int& task_count ( )
protected
const atomic_int& task_count ( ) const
protected

Member Data Documentation

uintmax_t m_id
protected

Referenced by VTaskGroup::id().

std::shared_ptr<atomic_int> m_tot_task_count = std::make_shared<atomic_int>(0)
protected
std::shared_ptr<condition_t> m_task_cond = std::make_shared<condition_t>()
protected

Referenced by VTaskGroup::task_cond().

std::shared_ptr<lock_t> m_task_lock = std::make_shared<lock_t>()
protected
tid_type m_main_tid
protected

Referenced by VTaskGroup::is_master().

int f_verbose
staticprotected

Referenced by VTaskGroup::set_verbose().