Clamp ticks to 1 and round to nearest.
This commit is contained in:
parent
a4371e9544
commit
bd7b3bd455
@ -82,8 +82,17 @@ impl Duration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a duration corresponding to the specified Hz.
|
/// Creates a duration corresponding to the specified Hz.
|
||||||
|
/// NOTE: Giving this function a hz >= the TICK_HZ of your platform will clamp the Duration to 1
|
||||||
|
/// tick. Doing so will not deadlock, but will certainly not produce the desired output.
|
||||||
pub const fn from_hz(hz: u64) -> Duration {
|
pub const fn from_hz(hz: u64) -> Duration {
|
||||||
Duration { ticks: TICK_HZ / hz }
|
let ticks = {
|
||||||
|
if hz >= TICK_HZ {
|
||||||
|
1
|
||||||
|
} else {
|
||||||
|
(TICK_HZ + hz / 2) / hz
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Duration { ticks }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Adds one Duration to another, returning a new Duration or None in the event of an overflow.
|
/// Adds one Duration to another, returning a new Duration or None in the event of an overflow.
|
||||||
|
Loading…
Reference in New Issue
Block a user