status-go/vendor/github.com/anacrolix/missinggo/jitter.go

18 lines
529 B
Go
Raw Permalink Normal View History

2022-03-10 09:44:48 +00:00
package missinggo
import (
"math/rand"
"time"
)
// Returns random duration in the range [average-plusMinus,
// average+plusMinus]. Negative plusMinus will likely panic. Be aware that if
// plusMinus >= average, you may get a zero or negative Duration. The
// distribution function is unspecified, in case I find a more appropriate one
// in the future.
func JitterDuration(average, plusMinus time.Duration) (ret time.Duration) {
ret = average - plusMinus
ret += time.Duration(rand.Int63n(2*int64(plusMinus) + 1))
return
}