fixing bug - edge case when jitter == math.MinInt64

This commit is contained in:
William Dillon 2026-02-26 20:02:59 -05:00
parent 8cefae503f
commit 610d0300a9

View File

@ -37,6 +37,16 @@ func satSub(a, b int64) int64 {
}
}
func absDurationSat(d time.Duration) time.Duration {
if d >= 0 {
return d
}
if d == time.Duration(math.MinInt64) {
return time.Duration(math.MaxInt64)
}
return -d
}
func DefaultApplyJitter(pauseDuration time.Duration, jitter time.Duration) time.Duration {
switch {
case pauseDuration <= 0:
@ -44,7 +54,7 @@ func DefaultApplyJitter(pauseDuration time.Duration, jitter time.Duration) time.
case jitter == 0:
return pauseDuration
case jitter < 0:
jitter = -jitter
jitter = absDurationSat(jitter)
case jitter > pauseDuration:
pauseDuration, jitter = jitter, pauseDuration
}