16
									
								
								vendor/k8s.io/client-go/util/flowcontrol/throttle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/k8s.io/client-go/util/flowcontrol/throttle.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -17,6 +17,8 @@ limitations under the License. | ||||
| package flowcontrol | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"sync" | ||||
| 	"time" | ||||
|  | ||||
| @ -33,6 +35,8 @@ type RateLimiter interface { | ||||
| 	Stop() | ||||
| 	// QPS returns QPS of this rate limiter | ||||
| 	QPS() float32 | ||||
| 	// Wait returns nil if a token is taken before the Context is done. | ||||
| 	Wait(ctx context.Context) error | ||||
| } | ||||
|  | ||||
| type tokenBucketRateLimiter struct { | ||||
| @ -98,6 +102,10 @@ func (t *tokenBucketRateLimiter) QPS() float32 { | ||||
| 	return t.qps | ||||
| } | ||||
|  | ||||
| func (t *tokenBucketRateLimiter) Wait(ctx context.Context) error { | ||||
| 	return t.limiter.Wait(ctx) | ||||
| } | ||||
|  | ||||
| type fakeAlwaysRateLimiter struct{} | ||||
|  | ||||
| func NewFakeAlwaysRateLimiter() RateLimiter { | ||||
| @ -116,6 +124,10 @@ func (t *fakeAlwaysRateLimiter) QPS() float32 { | ||||
| 	return 1 | ||||
| } | ||||
|  | ||||
| func (t *fakeAlwaysRateLimiter) Wait(ctx context.Context) error { | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| type fakeNeverRateLimiter struct { | ||||
| 	wg sync.WaitGroup | ||||
| } | ||||
| @ -141,3 +153,7 @@ func (t *fakeNeverRateLimiter) Accept() { | ||||
| func (t *fakeNeverRateLimiter) QPS() float32 { | ||||
| 	return 1 | ||||
| } | ||||
|  | ||||
| func (t *fakeNeverRateLimiter) Wait(ctx context.Context) error { | ||||
| 	return errors.New("can not be accept") | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user