4
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2025-07-06 16:34:04 +00:00

Update dependencies (#975)

This commit is contained in:
Wim
2020-01-09 21:02:56 +01:00
committed by GitHub
parent b9354de8fd
commit 0f708daf2d
360 changed files with 72921 additions and 42691 deletions

View File

@ -4,6 +4,7 @@ package backoff
import (
"math"
"math/rand"
"sync/atomic"
"time"
)
@ -14,19 +15,19 @@ import (
// Backoff is not generally concurrent-safe, but the ForAttempt method can
// be used concurrently.
type Backoff struct {
//Factor is the multiplying factor for each increment step
attempt, Factor float64
//Jitter eases contention by randomizing backoff steps
attempt uint64
// Factor is the multiplying factor for each increment step
Factor float64
// Jitter eases contention by randomizing backoff steps
Jitter bool
//Min and Max are the minimum and maximum values of the counter
// Min and Max are the minimum and maximum values of the counter
Min, Max time.Duration
}
// Duration returns the duration for the current attempt before incrementing
// the attempt counter. See ForAttempt.
func (b *Backoff) Duration() time.Duration {
d := b.ForAttempt(b.attempt)
b.attempt++
d := b.ForAttempt(float64(atomic.AddUint64(&b.attempt, 1) - 1))
return d
}
@ -80,12 +81,12 @@ func (b *Backoff) ForAttempt(attempt float64) time.Duration {
// Reset restarts the current attempt counter at zero.
func (b *Backoff) Reset() {
b.attempt = 0
atomic.StoreUint64(&b.attempt, 0)
}
// Attempt returns the current attempt counter value.
func (b *Backoff) Attempt() float64 {
return b.attempt
return float64(atomic.LoadUint64(&b.attempt))
}
// Copy returns a backoff with equals constraints as the original

3
vendor/github.com/jpillora/backoff/go.mod generated vendored Normal file
View File

@ -0,0 +1,3 @@
module github.com/jpillora/backoff
go 1.13