Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::TaskQueue Class Reference

#include <tasks.h>

Collaboration diagram for Realm::TaskQueue:

Classes

class  NotificationCallback
 

Public Types

typedef int priority_t
 

Public Member Functions

 TaskQueue (void)
 
void add_subscription (NotificationCallback *callback, priority_t higher_than=PRI_NEG_INF)
 
void remove_subscription (NotificationCallback *callback)
 
void set_gauge (ProfilingGauges::AbsoluteRangeGauge< int > *new_gauge)
 
void free_gauge ()
 
void enqueue_task (Task *task)
 
void enqueue_tasks (Task::TaskList &tasks, size_t num_tasks)
 
bool empty () const
 

Static Public Member Functions

static Taskget_best_task (const std::vector< TaskQueue * > &queues, int &task_priority)
 

Public Attributes

atomic< priority_ttop_priority
 
atomic< size_t > task_count
 
FIFOMutex mutex
 
Task::TaskList ready_task_list
 
std::vector< NotificationCallback * > callbacks
 
std::vector< priority_tcallback_priorities
 
ProfilingGauges::AbsoluteRangeGauge< int > * task_count_gauge
 

Static Public Attributes

static const priority_t PRI_MAX_FINITE = INT_MAX - 1
 
static const priority_t PRI_MIN_FINITE = -(INT_MAX - 1)
 
static const priority_t PRI_POS_INF = PRI_MAX_FINITE + 1
 
static const priority_t PRI_NEG_INF = PRI_MIN_FINITE - 1
 

Member Typedef Documentation

◆ priority_t

Constructor & Destructor Documentation

◆ TaskQueue()

Realm::TaskQueue::TaskQueue ( void  )

Member Function Documentation

◆ add_subscription()

void Realm::TaskQueue::add_subscription ( NotificationCallback callback,
priority_t  higher_than = PRI_NEG_INF 
)

◆ empty()

bool Realm::TaskQueue::empty ( ) const
inline

◆ enqueue_task()

void Realm::TaskQueue::enqueue_task ( Task task)

◆ enqueue_tasks()

void Realm::TaskQueue::enqueue_tasks ( Task::TaskList tasks,
size_t  num_tasks 
)

◆ free_gauge()

void Realm::TaskQueue::free_gauge ( )

◆ get_best_task()

static Task * Realm::TaskQueue::get_best_task ( const std::vector< TaskQueue * > &  queues,
int &  task_priority 
)
static

◆ remove_subscription()

void Realm::TaskQueue::remove_subscription ( NotificationCallback callback)

◆ set_gauge()

void Realm::TaskQueue::set_gauge ( ProfilingGauges::AbsoluteRangeGauge< int > *  new_gauge)

Member Data Documentation

◆ callback_priorities

std::vector<priority_t> Realm::TaskQueue::callback_priorities

◆ callbacks

std::vector<NotificationCallback *> Realm::TaskQueue::callbacks

◆ mutex

FIFOMutex Realm::TaskQueue::mutex

◆ PRI_MAX_FINITE

const priority_t Realm::TaskQueue::PRI_MAX_FINITE = INT_MAX - 1
static

◆ PRI_MIN_FINITE

const priority_t Realm::TaskQueue::PRI_MIN_FINITE = -(INT_MAX - 1)
static

◆ PRI_NEG_INF

const priority_t Realm::TaskQueue::PRI_NEG_INF = PRI_MIN_FINITE - 1
static

◆ PRI_POS_INF

const priority_t Realm::TaskQueue::PRI_POS_INF = PRI_MAX_FINITE + 1
static

◆ ready_task_list

Task::TaskList Realm::TaskQueue::ready_task_list

◆ task_count

atomic<size_t> Realm::TaskQueue::task_count

◆ task_count_gauge

ProfilingGauges::AbsoluteRangeGauge<int>* Realm::TaskQueue::task_count_gauge

◆ top_priority

atomic<priority_t> Realm::TaskQueue::top_priority

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