|
ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
|
Closed-loop per-host politeness governor (rate + backoff + concurrency). More...
#include <mdl_politeness.h>
Data Fields | |
| mdl_gov_cfg_t | cfg |
| Politeness tunables. | |
| mdl_host_rec_t | hosts [k_mdl_gov_max_hosts] |
| Per-host records. | |
| uint64_t | rng |
| Seeded xorshift64 jitter state. | |
| mdl_now_fn | now_fn |
| Injected monotonic clock (ms). | |
| void * | now_ctx |
| Context for now_fn. | |
| mdl_sleep_fn | sleep_fn |
| Injected sleeper, NULL = host. | |
| void * | sleep_ctx |
| Context for sleep_fn. | |
Closed-loop per-host politeness governor (rate + backoff + concurrency).
Holds the tunables, a fixed per-host table (zero dynamic allocation), the seeded jitter PRNG, and the injected clock/sleep seams. Declare one per download session and drive each request with mdl_governor_acquire -> fetch -> mdl_governor_observe -> mdl_governor_release. Large enough (a per-host table) to prefer file scope over a deep stack.
Definition at line 244 of file mdl_politeness.h.
| mdl_gov_cfg_t mdl_governor_t::cfg |
Politeness tunables.
Definition at line 245 of file mdl_politeness.h.
Referenced by internal_gov_get(), internal_gov_on_success(), internal_gov_on_throttle(), internal_gov_schedule(), mdl_governor_acquire(), and mdl_governor_init_clock().
| mdl_host_rec_t mdl_governor_t::hosts[k_mdl_gov_max_hosts] |
Per-host records.
Definition at line 246 of file mdl_politeness.h.
Referenced by internal_gov_find(), internal_gov_get(), and mdl_governor_peek().
| void* mdl_governor_t::now_ctx |
Context for now_fn.
Definition at line 249 of file mdl_politeness.h.
Referenced by internal_gov_now(), and mdl_governor_init_clock().
| mdl_now_fn mdl_governor_t::now_fn |
Injected monotonic clock (ms).
Definition at line 248 of file mdl_politeness.h.
Referenced by internal_gov_now(), and mdl_governor_init_clock().
| uint64_t mdl_governor_t::rng |
Seeded xorshift64 jitter state.
Definition at line 247 of file mdl_politeness.h.
Referenced by internal_gov_on_throttle(), mdl_governor_acquire(), and mdl_governor_init_clock().
| void* mdl_governor_t::sleep_ctx |
Context for sleep_fn.
Definition at line 251 of file mdl_politeness.h.
Referenced by internal_gov_sleep(), and mdl_governor_init_clock().
| mdl_sleep_fn mdl_governor_t::sleep_fn |
Injected sleeper, NULL = host.
Definition at line 250 of file mdl_politeness.h.
Referenced by internal_gov_sleep(), and mdl_governor_init_clock().