namespace
sched
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
- struct LevelFillMask
- struct LevelMask
- 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>
- 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 callsresumeRunnable
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
#include <src/vt/scheduler/priority.h>
enum vt:: sched:: SchedulerEvent
#include <src/vt/scheduler/scheduler.h>
Typedef documentation
using vt:: sched:: PriorityArrayType = std::array<PriorityType, sched::priority_num_levels>
#include <src/vt/scheduler/priority.h>
using vt:: sched:: Unit = BaseUnit
#include <src/vt/scheduler/work_unit.h>
Function documentation
#include <src/vt/scheduler/priority.h>
template<PriorityType... i>
PriorityArrayType vt:: sched:: mediumArray(std::integer_sequence<PriorityType, i...>) constexpr
#include <src/vt/scheduler/priority.h>
template<PriorityType L = priority_num_levels>
PriorityArrayType vt:: sched:: mediumArray() constexpr
#include <src/vt/scheduler/priority.h>
template<PriorityType... i>
PriorityArrayType vt:: sched:: breadthArray(std::integer_sequence<PriorityType, i...>) constexpr
#include <src/vt/scheduler/priority.h>
template<PriorityType L = priority_num_levels>
PriorityArrayType vt:: sched:: breadthArray() constexpr
Variable documentation
static const PriorityType vt:: sched:: priority_level_bits constexpr
#include <src/vt/scheduler/priority.h>
static const PriorityType vt:: sched:: priority_num_levels constexpr
#include <src/vt/scheduler/priority.h>
static const PriorityType vt:: sched:: priority_midpoint constexpr
#include <src/vt/scheduler/priority.h>
static const PriorityType vt:: sched:: priority_remainder constexpr
#include <src/vt/scheduler/priority.h>
static const PriorityType vt:: sched:: priority_all_set constexpr
#include <src/vt/scheduler/priority.h>