swactor/crates
Zachery Aaron Shores-Chmielewski a2ef459228 perf(engine): park idle core drivers instead of self-wake spinning
The core driver re-armed itself via wake_by_ref() after every poll, an
unconditional spin at scheduler speed per worker for the engine's
lifetime. The provisioning-reconciler-demo supervisor + 3 node children
burned ~750% CPU idle; now ~50% (demo churn), wakeup latency for work
delivered to an idle worker bounded by the idle interval.

- ExecutionBackend::core_idle_poll() (default Duration::ZERO = previous
  immediate re-arm) lets a backend opt its drivers into idle parking.
- TokioConfig::core_idle_poll (default 500us) configures it for the
  Tokio backend; from_runtime adopts the default.
- CoreDriver: busy tick (or zero interval) re-arms immediately; idle
  tick arms one backend timer and parks. Every poll still runs exactly
  one try_tick, so stepping-backend semantics are unchanged. The
  backend is held Weak and touched only on idle transitions; if the
  engine is gone the driver parks until the substrate cancels it.
- Contract tests: a parked driver observes a late external
  (engine-invisible) send within the idle interval; the backend reports
  its configured interval.
2026-08-16 17:27:38 +04:00
..
bindings feat(core): add process-local multicore runtime 2026-08-11 16:12:09 +04:00
dashboard feat(dashboard): Segment Mask visual world and merged Fleet Control 2026-08-16 15:16:30 +04:00
data-plane refactor: datastream crate is now telemetry 2026-08-15 12:18:56 +04:00
distribution refactor: datastream crate is now telemetry 2026-08-15 12:18:56 +04:00
engine perf(engine): park idle core drivers instead of self-wake spinning 2026-08-16 17:27:38 +04:00
iroh-driver refactor: datastream crate is now telemetry 2026-08-15 12:18:56 +04:00
process refactor: datastream crate is now telemetry 2026-08-15 12:18:56 +04:00
provisioning refactor: datastream crate is now telemetry 2026-08-15 12:18:56 +04:00
telemetry refactor: datastream crate is now telemetry 2026-08-15 12:18:56 +04:00
transport feat(core): add process-local multicore runtime 2026-08-11 16:12:09 +04:00