diff options
author | Vito Caputo <vcaputo@pengaru.com> | 2024-10-06 23:34:19 -0700 |
---|---|---|
committer | Vito Caputo <vcaputo@pengaru.com> | 2024-10-08 01:31:31 -0700 |
commit | 8cd80cf9481f2a384a239b9fc1d02874aa7c64a7 (patch) | |
tree | b840166e28867b615862bb7235fb8093fbb2b387 /src/window.c | |
parent | 862c618c45d75d6f736f6b129943a5063e60c9eb (diff) |
charts: try compute a real desired_delay_us
This introduces a concept of a "close enough" epsilon value.
Where if the attempted update's current time is within very small
temporal distance from the precisely scheduled time dictated by
the interval, the update will still take a sample, rather than
try introduce a tiny dely the host/kernel/ppoll will likely fail
to adhere to without being tardy.
Previously the desired delay was just a third of the interval,
with no consideration for how long sampling took. This was dead
simple, but made no attempt to schedule the poll timeout to align
with the next sampling deadline, and would either cause excessive
wakeups, or excessive tardiness, depending on the host's speed.
I think this technically also fixed a bug where this_delta
wouldn't get assigned if one of the earlier conditions
short-circuited the later condition where it was being assigned.
Diffstat (limited to 'src/window.c')
0 files changed, 0 insertions, 0 deletions