Fork Vasum on GitHub Official Vasum Wiki on Tizen.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
utils::Worker::WorkerQueue Class Reference

Classes

struct  TaskInfo
 

Public Member Functions

 WorkerQueue ()
 
 ~WorkerQueue ()
 
GroupID getNextGroupID ()
 
void addTask (const Worker::Task &task, GroupID groupID, Latch *latch)
 
void waitForGroupEmpty (GroupID groupID)
 

Private Types

typedef std::unique_lock
< std::mutex > 
Lock
 

Private Member Functions

void workerProc ()
 

Static Private Member Functions

static void execute (const TaskInfo &taskInfo)
 

Private Attributes

std::atomic< GroupIDmLastGroupID
 
std::condition_variable mAddedCondition
 
std::condition_variable mEmptyGroupCondition
 
std::thread mThread
 
std::mutex mMutex
 
bool mEnding
 
std::deque< TaskInfomTaskQueue
 
CountingMap< GroupIDmGroupCounter
 

Member Typedef Documentation

typedef std::unique_lock<std::mutex> utils::Worker::WorkerQueue::Lock
private

Constructor & Destructor Documentation

utils::Worker::WorkerQueue::WorkerQueue ( )
inline
utils::Worker::WorkerQueue::~WorkerQueue ( )
inline

Member Function Documentation

void utils::Worker::WorkerQueue::addTask ( const Worker::Task task,
GroupID  groupID,
Latch latch 
)
inline
static void utils::Worker::WorkerQueue::execute ( const TaskInfo taskInfo)
inlinestaticprivate
GroupID utils::Worker::WorkerQueue::getNextGroupID ( )
inline
void utils::Worker::WorkerQueue::waitForGroupEmpty ( GroupID  groupID)
inline
void utils::Worker::WorkerQueue::workerProc ( )
inlineprivate

Member Data Documentation

std::condition_variable utils::Worker::WorkerQueue::mAddedCondition
private
std::condition_variable utils::Worker::WorkerQueue::mEmptyGroupCondition
private
bool utils::Worker::WorkerQueue::mEnding
private
CountingMap<GroupID> utils::Worker::WorkerQueue::mGroupCounter
private
std::atomic<GroupID> utils::Worker::WorkerQueue::mLastGroupID
private
std::mutex utils::Worker::WorkerQueue::mMutex
private
std::deque<TaskInfo> utils::Worker::WorkerQueue::mTaskQueue
private
std::thread utils::Worker::WorkerQueue::mThread
private

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