fixing bug - edge case when jitter == math.MinInt64
This commit is contained in:
parent
8cefae503f
commit
610d0300a9
@ -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
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user