tin  1.5.9
tsm::runtime::cooperative_executor< Tasks > Class Template Reference

#include <executor.h>

Inheritance diagram for tsm::runtime::cooperative_executor< Tasks >:
Inheritance graph
Collaboration diagram for tsm::runtime::cooperative_executor< Tasks >:
Collaboration graph

Additional Inherited Members

- Public Member Functions inherited from tsm::runtime::basic_cooperative_executor< detail::executor_task_binding, Tasks... >
constexpr basic_cooperative_executor (Tasks &... tasks)
 
bool step ()
 
std::size_t run_ready ()
 
std::size_t tick (tsm::tick_rep elapsed_ticks=1U)
 
std::size_t tick (tsm::tick_count elapsed_ticks)
 
void start_all ()
 
spawn_result start ()
 
void start_group (tsm::task_group< Entries... >)
 
spawn_result spawn (Args &&... args)
 
task_spawner< basic_cooperative_executorspawner ()
 
task_status task_status () const
 
task_failure_reason task_failure_reason () const
 
bool cancel () noexcept
 
void cancel_group (tsm::task_group< Entries... >) noexcept
 
void cancel_all () noexcept
 

Detailed Description

template<typename... Tasks>
class tsm::runtime::cooperative_executor< Tasks >

Caller-driven cooperative executor.

The executor owns no threads and no platform wake primitive. It repeatedly calls step() on each task/runtime until none reports progress. This is the default bare-metal execution shape and the replacement for the old single-threaded queued policy.


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