tin  1.5.9
executor.h File Reference

Target-independent executors for tsm runtimes. More...

#include <algorithm>
#include <array>
#include <cstddef>
#include <cstdint>
#include <tuple>
#include <type_traits>
#include <utility>
#include "tsm.h"
#include "tsm/runtime/concepts.h"
#include "tsm/runtime/coroutine.h"
Include dependency graph for executor.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tsm::runtime::inline_executor
 
class  tsm::runtime::runtime_group< Runtimes >
 
class  tsm::runtime::task_spawner< Executor >
 
class  tsm::runtime::basic_cooperative_executor< Binding, Tasks >
 
class  tsm::runtime::cooperative_executor< Tasks >
 
class  tsm::runtime::priority_cooperative_executor< Tasks >
 
class  tsm::runtime::tick_executor< Runtime, Capacity >
 

Namespaces

 tsm
 
 tsm::runtime
 

Macros

#define TSM_SUPPRESS_AUTO_PLATFORM_ADAPTERS
 
#define TSM_RESTORE_AUTO_PLATFORM_ADAPTERS
 

Typedefs

template<typename Executor >
using tsm::runtime::spawner = task_spawner< Executor >
 
template<typename Runtime , std::size_t Capacity = 16U>
using tsm::runtime::delayed_event_timer = tick_executor< Runtime, Capacity >
 

Functions

template<typename... Runtimes>
 tsm::runtime::runtime_group (Runtimes &...) -> runtime_group< Runtimes... >
 
template<typename... Tasks>
 tsm::runtime::cooperative_executor (Tasks &...) -> cooperative_executor< Tasks... >
 
template<typename... Tasks>
 tsm::runtime::priority_cooperative_executor (Tasks &...) -> priority_cooperative_executor< Tasks... >
 
template<typename TickSource , typename Executor , typename DelayedEvents >
tsm::tick_rep tsm::runtime::drive_elapsed_ticks (TickSource &tick_source, Executor &executor, DelayedEvents &delayed_events)
 
template<typename Runtime >
 tsm::runtime::tick_executor (Runtime &) -> tick_executor< Runtime >
 

Detailed Description

Target-independent executors for tsm runtimes.

Drive runtimes from a superloop, host thread, RTOS task, or test harness. Executors provide step(), run_ready(), explicit tick advancement, delayed-event timers, and coroutine task bindings. Platform adapters add wake primitives around this surface; transition rules stay in the runtime being driven.

Macro Definition Documentation

◆ TSM_RESTORE_AUTO_PLATFORM_ADAPTERS

#define TSM_RESTORE_AUTO_PLATFORM_ADAPTERS

◆ TSM_SUPPRESS_AUTO_PLATFORM_ADAPTERS

#define TSM_SUPPRESS_AUTO_PLATFORM_ADAPTERS