vt::sched namespace

Namespaces

namespace detail

Classes

struct BaseUnit
The base class for a work unit that either holds a std::unique_ptr to a runnable or contains a general lambda to execute.
template<PriorityType N = priority_num_bits, PriorityType M = 0x0, PriorityType L = priority_num_levels, PriorityType R = priority_remainder>
struct DefaultMask
template<PriorityType N, PriorityType M, PriorityType L, PriorityType R = priority_remainder>
struct LevelFillMask
template<PriorityType N, PriorityType M, PriorityType L, PriorityType R = priority_remainder>
struct LevelMask
template<PriorityType N, PriorityType M, PriorityType L, PriorityType R, bool F, typename = void>
struct Mask
struct Mask<N, M, 0, R, false, typename std::enable_if<N !=R>::type>
struct Mask<N, M, 0, R, true, typename std::enable_if<N !=R>::type>
template<PriorityType N, PriorityType M, PriorityType L, PriorityType R, bool fill>
struct Mask<N, M, L, R, fill, typename std::enable_if<N==R>::type>
struct PriorityManip
template<typename T>
struct PriorityQueue
struct PriorityUnit
template<typename T>
struct Queue
struct Scheduler
A core VT component that schedules work generated from other components. The pieces of work waiting to execute may be prioritized, see src/vt/scheduler/priority.h.
struct SuspendedUnits
Holds RunnableNew pointers that have been suspended awaiting a resumption when a dependency clears or the thread is otherwise resumed. Once a runnable is put here, nothing will check it until some other component calls resumeRunnable on it with the appropriate thread ID.

Enums

enum PriorityLevel { SystemLevel = 0, UserLevelMin = PriorityLevel::SystemLevel + 1, UserLevelMax = priority_num_levels - 1 }
enum SchedulerEvent { BeginIdle = 0, EndIdle = 1, BeginIdleMinusTerm = 2, EndIdleMinusTerm = 3, BeginSchedulerLoop = 4, EndSchedulerLoop = 5, PendingSchedulerLoop = 6, LastSchedulerEvent = 6 }

Typedefs

using PriorityArrayType = std::array<PriorityType, sched::priority_num_levels>
using Unit = BaseUnit

Functions

template<PriorityType... i>
auto mediumArray(std::integer_sequence<PriorityType, i...>) -> PriorityArrayType constexpr
template<PriorityType L = priority_num_levels>
auto mediumArray() -> PriorityArrayType constexpr
template<PriorityType... i>
auto breadthArray(std::integer_sequence<PriorityType, i...>) -> PriorityArrayType constexpr
template<PriorityType L = priority_num_levels>
auto breadthArray() -> PriorityArrayType constexpr

Variables

static const PriorityType priority_level_bits constexpr
static const PriorityType priority_num_levels constexpr
static const PriorityType priority_midpoint constexpr
static const PriorityType priority_remainder constexpr
static const PriorityType priority_all_set constexpr

Enum documentation

enum vt::sched::PriorityLevel

Typedef documentation

using vt::sched::PriorityArrayType = std::array<PriorityType, sched::priority_num_levels>

using vt::sched::Unit = BaseUnit

Function documentation

template<PriorityType... i>
PriorityArrayType vt::sched::mediumArray(std::integer_sequence<PriorityType, i...>) constexpr

template<PriorityType L = priority_num_levels>
PriorityArrayType vt::sched::mediumArray() constexpr

template<PriorityType... i>
PriorityArrayType vt::sched::breadthArray(std::integer_sequence<PriorityType, i...>) constexpr

template<PriorityType L = priority_num_levels>
PriorityArrayType vt::sched::breadthArray() constexpr

Variable documentation

static const PriorityType vt::sched::priority_level_bits constexpr

static const PriorityType vt::sched::priority_num_levels constexpr

static const PriorityType vt::sched::priority_midpoint constexpr

static const PriorityType vt::sched::priority_remainder constexpr

static const PriorityType vt::sched::priority_all_set constexpr