|
tess 1.0.0
Performance-first tile and path simulation substrate
|
Synchronous correctness baseline; each schedule call executes immediately. More...
#include <tess/experimental/maintenance.h>
Public Member Functions | |
| ImmediateScheduler (std::size_t=0) | |
| auto | schedule (MaintenanceTask &task) -> bool override |
| auto | run_some (MaintenanceBudget) -> bool override |
| auto | flush () -> bool override |
| Completes all reachable work; see the non-reentrant drain contract above. | |
| auto | metrics () const noexcept -> MaintenanceMetrics override |
| auto | has_pending () const noexcept -> bool override |
| void | set_flow_accounting (diagnostics::FlowAccounting *accounting) |
| void | observe_flow_tick (std::uint64_t tick) |
Synchronous correctness baseline; each schedule call executes immediately.
|
inlinenodiscardoverridevirtual |
Completes all reachable work; see the non-reentrant drain contract above.
Implements tess::experimental::maintenance::MaintenanceScheduler.
|
inlinenodiscardoverridevirtualnoexcept |
Returns whether this backend currently retains reachable work.
Implements tess::experimental::maintenance::MaintenanceScheduler.
|
inlinenodiscardoverridevirtualnoexcept |
|
inline |
Observes one monotonic tick; the immediate backend never retains work across calls, so only inventory weighting applies.
|
inlinenodiscardoverridevirtual |
Runs reachable work until the queue or supplied budget is exhausted.
Do not call this or flush() from MaintenanceTask::run(): queued backends serialize drains with a non-recursive lock. schedule() is the only reentrant scheduler operation supported from a running task.
Implements tess::experimental::maintenance::MaintenanceScheduler.
|
inlinenodiscardoverridevirtual |
Schedules derived-state work.
The task must outlive this scheduler or an explicit flush(). A false result reports bounded capacity exhaustion, incomplete backend setup, an unknown task identity, or a backend that cannot make progress; authoritative state must retain its dirty signal so a caller can retry.
Implements tess::experimental::maintenance::MaintenanceScheduler.
|
inline |
Attaches caller-owned flow accounting; null detaches.
Attach or detach only while no schedule call is running; updates happen under the scheduler's lock (serial snapshots).