vendor: golang.org/x/time 3af7569d3a1e776fc2a3c1cec133b43105ea9c2e

full diff: 555d28b269...3af7569d3a

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2021-06-21 12:12:24 +02:00
parent 8ebe404dfc
commit 6d25af0cd7
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
2 changed files with 8 additions and 6 deletions

View File

@ -82,7 +82,7 @@ golang.org/x/sync 036812b2e83c0ddf193dd5a34e03
golang.org/x/sys d19ff857e887eacb631721f188c7d365c2331456 golang.org/x/sys d19ff857e887eacb631721f188c7d365c2331456
golang.org/x/term f5c789dd3221ff39d752ac54467d762de7cfbec6 golang.org/x/term f5c789dd3221ff39d752ac54467d762de7cfbec6
golang.org/x/text 23ae387dee1f90d29a23c0e87ee0b46038fbed0e # v0.3.3 golang.org/x/text 23ae387dee1f90d29a23c0e87ee0b46038fbed0e # v0.3.3
golang.org/x/time 555d28b269f0569763d25dbe1a237ae74c6bcc82 golang.org/x/time 3af7569d3a1e776fc2a3c1cec133b43105ea9c2e
google.golang.org/genproto 3f1135a288c9a07e340ae8ba4cc6c7065a3160e8 google.golang.org/genproto 3f1135a288c9a07e340ae8ba4cc6c7065a3160e8
google.golang.org/grpc f495f5b15ae7ccda3b38c53a1bfcde4c1a58a2bc # v1.27.1 google.golang.org/grpc f495f5b15ae7ccda3b38c53a1bfcde4c1a58a2bc # v1.27.1
gopkg.in/inf.v0 d2d2541c53f18d2a059457998ce2876cc8e67cbf # v0.9.1 gopkg.in/inf.v0 d2d2541c53f18d2a059457998ce2876cc8e67cbf # v0.9.1

View File

@ -53,10 +53,9 @@ func Every(interval time.Duration) Limit {
// //
// The methods AllowN, ReserveN, and WaitN consume n tokens. // The methods AllowN, ReserveN, and WaitN consume n tokens.
type Limiter struct { type Limiter struct {
mu sync.Mutex
limit Limit limit Limit
burst int burst int
mu sync.Mutex
tokens float64 tokens float64
// last is the last time the limiter's tokens field was updated // last is the last time the limiter's tokens field was updated
last time.Time last time.Time
@ -76,6 +75,8 @@ func (lim *Limiter) Limit() Limit {
// Burst values allow more events to happen at once. // Burst values allow more events to happen at once.
// A zero Burst allows no events, unless limit == Inf. // A zero Burst allows no events, unless limit == Inf.
func (lim *Limiter) Burst() int { func (lim *Limiter) Burst() int {
lim.mu.Lock()
defer lim.mu.Unlock()
return lim.burst return lim.burst
} }
@ -196,7 +197,7 @@ func (lim *Limiter) Reserve() *Reservation {
// ReserveN returns a Reservation that indicates how long the caller must wait before n events happen. // ReserveN returns a Reservation that indicates how long the caller must wait before n events happen.
// The Limiter takes this Reservation into account when allowing future events. // The Limiter takes this Reservation into account when allowing future events.
// ReserveN returns false if n exceeds the Limiter's burst size. // The returned Reservations OK() method returns false if n exceeds the Limiter's burst size.
// Usage example: // Usage example:
// r := lim.ReserveN(time.Now(), 1) // r := lim.ReserveN(time.Now(), 1)
// if !r.OK() { // if !r.OK() {
@ -229,7 +230,7 @@ func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) {
lim.mu.Unlock() lim.mu.Unlock()
if n > burst && limit != Inf { if n > burst && limit != Inf {
return fmt.Errorf("rate: Wait(n=%d) exceeds limiter's burst %d", n, lim.burst) return fmt.Errorf("rate: Wait(n=%d) exceeds limiter's burst %d", n, burst)
} }
// Check if ctx is already cancelled // Check if ctx is already cancelled
select { select {
@ -359,6 +360,7 @@ func (lim *Limiter) reserveN(now time.Time, n int, maxFutureReserve time.Duratio
// advance calculates and returns an updated state for lim resulting from the passage of time. // advance calculates and returns an updated state for lim resulting from the passage of time.
// lim is not changed. // lim is not changed.
// advance requires that lim.mu is held.
func (lim *Limiter) advance(now time.Time) (newNow time.Time, newLast time.Time, newTokens float64) { func (lim *Limiter) advance(now time.Time) (newNow time.Time, newLast time.Time, newTokens float64) {
last := lim.last last := lim.last
if now.Before(last) { if now.Before(last) {