|
tin
1.5.9
|
Cooperative synchronization primitives for static tsm tasks. More...
#include <algorithm>#include <array>#include <concepts>#include <cstddef>#include <cstdint>#include <type_traits>#include <utility>#include "tsm/runtime/coroutine.h"#include "tsm/runtime/policy.h"

Go to the source code of this file.
Classes | |
| class | tsm::event_flag< MaxWaiters > |
| class | tsm::event_flag< MaxWaiters >::wait_awaitable |
| class | tsm::irq_event< MaxWaiters > |
| class | tsm::cancellation_token< MaxWaiters > |
| Read-only cancellation capability for cooperative tasks. More... | |
| class | tsm::cancellation_token< MaxWaiters >::wait_awaitable |
| class | tsm::cancellation_source< MaxWaiters > |
| class | tsm::signal< T, MaxWaiters > |
| class | tsm::signal< T, MaxWaiters >::wait_awaitable |
| class | tsm::runtime::sender< T > |
| class | tsm::runtime::receiver< T > |
| class | tsm::runtime::latest_reader< T > |
| class | tsm::runtime::channel< T, Capacity, OverflowPolicy, MaxWaiters > |
| class | tsm::runtime::channel< T, Capacity, OverflowPolicy, MaxWaiters >::send_awaitable< Value > |
| class | tsm::runtime::channel< T, Capacity, OverflowPolicy, MaxWaiters >::receive_awaitable |
| class | tsm::mutex< T, MaxWaiters > |
| class | tsm::mutex< T, MaxWaiters >::lock_awaitable |
Namespaces | |
| tsm | |
| tsm::runtime | |
| tsm::runtime::detail | |
Typedefs | |
| template<std::size_t MaxWaiters = 4U> | |
| using | tsm::os_event = irq_event< MaxWaiters > |
| template<typename T , std::size_t Capacity, typename Overflow = overflow::reject_newest, std::size_t MaxWaiters = 4U> | |
| using | tsm::channel = runtime::channel< T, Capacity, Overflow, MaxWaiters > |
Cooperative synchronization primitives for static tsm tasks.
These primitives are for coroutine tasks running under a tsm executor. They never block an OS thread and never allocate. Waiting tasks are represented by their task_context; signaling a primitive wakes those tasks through the scheduler ready queue.