fix: correct jitter range to ±25% and fix abort.rs doc — review findings
This commit is contained in:
@@ -13,10 +13,10 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
pub fn backoff_seconds(attempt: u32, max_secs: u64) -> Duration {
|
||||
let base_secs = (2u64).pow(attempt).min(max_secs);
|
||||
let quarter = (base_secs * 250_000_000).max(100_000_000); // 25% of base, min 100ms
|
||||
let offset = jitter_ns(quarter);
|
||||
// ±25%: offset in [0, quarter), so result = base - quarter/2 + offset
|
||||
let offset = jitter_ns(quarter * 2); // [0, 50% of base)
|
||||
// ±25%: offset in [0, 2×quarter), result = base + offset - quarter
|
||||
// which lies in [base - 25%, base + 25%).
|
||||
let ns = base_secs * 1_000_000_000 + offset - quarter / 2;
|
||||
let ns = base_secs * 1_000_000_000 + offset - quarter;
|
||||
Duration::from_nanos(ns)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user