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 {
|
func DefaultApplyJitter(pauseDuration time.Duration, jitter time.Duration) time.Duration {
|
||||||
switch {
|
switch {
|
||||||
case pauseDuration <= 0:
|
case pauseDuration <= 0:
|
||||||
@ -44,7 +54,7 @@ func DefaultApplyJitter(pauseDuration time.Duration, jitter time.Duration) time.
|
|||||||
case jitter == 0:
|
case jitter == 0:
|
||||||
return pauseDuration
|
return pauseDuration
|
||||||
case jitter < 0:
|
case jitter < 0:
|
||||||
jitter = -jitter
|
jitter = absDurationSat(jitter)
|
||||||
case jitter > pauseDuration:
|
case jitter > pauseDuration:
|
||||||
pauseDuration, jitter = jitter, pauseDuration
|
pauseDuration, jitter = jitter, pauseDuration
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user