|
tess 0.4.0
Performance-first tile and path simulation substrate
|
#include <tess/sim/schedule.h>
Public Types | |
| using | TaskId = std::uint32_t |
Public Member Functions | |
| void | reserve_tasks (std::size_t count) |
| auto | add_task (const ScheduleTaskDesc &desc, void *ctx, ScheduleTaskFn fn) -> TaskId |
| template<typename T> | |
| auto | add_task (const ScheduleTaskDesc &desc, T &task) -> TaskId |
| void | seal () |
| auto | sealed () const noexcept -> bool |
| void | set_enabled (TaskId id, bool enabled) noexcept |
| void | request_run (TaskId id) noexcept |
| void | notify_dirty (std::uint32_t mask) noexcept |
| auto | run_tick (SimClock &clock) -> ScheduleTickStats |
| auto | task_stats (TaskId id) const noexcept -> ScheduleTaskStats |
| auto | task_count () const noexcept -> std::size_t |
Executes non-owning task callbacks in deterministic phase order.
Registering tasks may allocate until seal; dispatch performs no allocation. Instances require external synchronization and callbacks must outlive the schedule.