OpenSDN source code
task.h File Reference
#include <boost/scoped_ptr.hpp>
#include <boost/intrusive/list.hpp>
#include <map>
#include <shared_mutex>
#include <vector>
#include <tbb/mutex.h>
#include <tbb/task.h>
#include <tbb/task_scheduler_init.h>
#include "base/util.h"
Include dependency graph for task.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Task
 Task is a class to describe a computational task within OpenSDN control plane applications. A task is a labelled sequence of instructions (code) and data processed by them in a single thread. OpenSDN Task wraps over tbb::task. Tasks are labelled using a pair of numbers: More...
 
struct  TaskExclusion
 The class is used to specify a Task label for formulating a task exclusion list (an execution policy). More...
 
struct  TaskStats
 
class  TaskScheduler
 The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is added to the run queue or the pending queue depending as to whether there is a runable or pending task ahead of it that violates the mutual exclusion policies. When tasks exit the scheduler re-examines the tasks on the pending queue which may now be runnable. It is important that this process is efficient such that exit events do not scan tasks that are not waiting on a particular task id or task instance to have a 0 count. More...
 

Macros

#define TBB_SUPPRESS_DEPRECATED_MESSAGES   1
 

Typedefs

typedef std::vector< TaskExclusionTaskPolicy
 Defines a type to store an execution policy (a list of task exclusions). More...
 

Macro Definition Documentation

◆ TBB_SUPPRESS_DEPRECATED_MESSAGES

#define TBB_SUPPRESS_DEPRECATED_MESSAGES   1

Definition at line 15 of file task.h.

Typedef Documentation

◆ TaskPolicy

typedef std::vector<TaskExclusion> TaskPolicy

Defines a type to store an execution policy (a list of task exclusions).

Definition at line 270 of file task.h.