enum Parker {
SleepSlice,
Condvar,
}Expand description
How the thread waits when a deadline is armed.
Exactly one implementation ships. SleepSlice is the backend on
every platform. Condvar exists because TimerBackend::Condvar and
ImpairmentKind::CoarseReleaseTimer are public API and must be
reachable by a test: forcing it on Windows produces a genuinely
tick-bound wheel — measured p50 lateness 12.256 ms for a 3 ms deadline
— which is exactly what that impairment reports, so the fault
injection is not a simulation. No #[cfg]: both arms compile on
every platform, and the choice is made once, at construction, from
MOQTAP_RELEASE_TIMER. This enum is the seam for adding a platform
timer without touching the wheel.
Variants§
SleepSlice
std::thread::sleep(min(remaining, SLICE)), re-reading the heap
between slices.
Condvar
Condvar::wait_timeout for the whole remainder: interruptible
everywhere, high-resolution only on Unix.