Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
|
#include <VUserTaskQueue.hh>
Public Types | |
using | task_pointer = std::shared_ptr< VTask > |
using | AtomicInt = std::atomic< intmax_t > |
using | size_type = uintmax_t |
using | function_type = std::function< void()> |
using | ThreadIdSet = std::set< ThreadId > |
Public Member Functions | |
VUserTaskQueue (intmax_t nworkers=-1) | |
virtual | ~VUserTaskQueue ()=default |
virtual task_pointer | GetTask (intmax_t subq=-1, intmax_t nitr=-1)=0 |
virtual intmax_t | InsertTask (task_pointer &&, ThreadData *=nullptr, intmax_t subq=-1) PTL_NO_SANITIZE_THREAD=0 |
virtual void | Wait ()=0 |
virtual intmax_t | GetThreadBin () const =0 |
virtual void | resize (intmax_t)=0 |
virtual size_type | size () const =0 |
virtual bool | empty () const =0 |
virtual size_type | bin_size (size_type bin) const =0 |
virtual bool | bin_empty (size_type bin) const =0 |
virtual size_type | true_size () const |
virtual bool | true_empty () const |
virtual void | ExecuteOnAllThreads (ThreadPool *tp, function_type f)=0 |
virtual void | ExecuteOnSpecificThreads (ThreadIdSet tid_set, ThreadPool *tp, function_type f)=0 |
intmax_t | workers () const |
virtual VUserTaskQueue * | clone ()=0 |
Protected Attributes | |
intmax_t | m_workers = 0 |
Definition at line 45 of file VUserTaskQueue.hh.
using PTL::VUserTaskQueue::AtomicInt = std::atomic<intmax_t> |
Definition at line 49 of file VUserTaskQueue.hh.
using PTL::VUserTaskQueue::function_type = std::function<void()> |
Definition at line 51 of file VUserTaskQueue.hh.
using PTL::VUserTaskQueue::size_type = uintmax_t |
Definition at line 50 of file VUserTaskQueue.hh.
using PTL::VUserTaskQueue::task_pointer = std::shared_ptr<VTask> |
Definition at line 48 of file VUserTaskQueue.hh.
using PTL::VUserTaskQueue::ThreadIdSet = std::set<ThreadId> |
Definition at line 52 of file VUserTaskQueue.hh.
|
explicit |
Definition at line 38 of file VUserTaskQueue.cc.
|
virtualdefault |
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Implemented in PTL::UserTaskQueue.
|
pure virtual |
Implemented in PTL::UserTaskQueue.
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Referenced by PTL::ThreadPool::execute_thread(), and true_empty().
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Referenced by PTL::ThreadPool::execute_on_all_threads().
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Referenced by PTL::ThreadPool::execute_on_specific_threads().
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Referenced by PTL::ThreadPool::execute_thread().
|
pure virtual |
Implemented in PTL::UserTaskQueue.
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Referenced by PTL::ThreadPool::add_tasks(), and PTL::ThreadPool::insert().
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Referenced by PTL::ThreadPool::initialize_threadpool(), and PTL::ThreadPool::resize().
|
pure virtual |
Implemented in PTL::UserTaskQueue.
Referenced by true_size().
|
inlinevirtual |
Reimplemented in PTL::UserTaskQueue.
Definition at line 94 of file VUserTaskQueue.hh.
|
inlinevirtual |
Reimplemented in PTL::UserTaskQueue.
Definition at line 93 of file VUserTaskQueue.hh.
Referenced by PTL::ThreadPool::execute_thread().
|
pure virtual |
Implemented in PTL::UserTaskQueue.
|
inline |
|
protected |
Definition at line 107 of file VUserTaskQueue.hh.
Referenced by PTL::UserTaskQueue::ExecuteOnAllThreads(), PTL::UserTaskQueue::ExecuteOnSpecificThreads(), PTL::UserTaskQueue::GetInsertBin(), PTL::UserTaskQueue::GetTask(), PTL::UserTaskQueue::GetThreadBin(), PTL::UserTaskQueue::GetThreadBinTask(), PTL::UserTaskQueue::InsertTask(), PTL::UserTaskQueue::resize(), VUserTaskQueue(), and workers().