ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
mdl_governor_t Struct Reference

Closed-loop per-host politeness governor (rate + backoff + concurrency). More...

#include <mdl_politeness.h>

Collaboration diagram for mdl_governor_t:

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.

Detailed Description

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.

Invariant
rng is never 0 after an init function.
Every occupied slot has a unique host.
See also
mdl_governor_acquire
mdl_governor_observe
Since
0.1.0

Definition at line 244 of file mdl_politeness.h.

Field Documentation

◆ cfg

◆ hosts

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().

◆ now_ctx

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().

◆ now_fn

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().

◆ rng

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().

◆ sleep_ctx

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().

◆ sleep_fn

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().


The documentation for this struct was generated from the following file: