Index: client/internal/retry/retry.go |
diff --git a/client/internal/retry/retry.go b/client/internal/retry/retry.go |
deleted file mode 100644 |
index 35582cb7bb542ca1f76be84146c48b3a9eeaa4e5..0000000000000000000000000000000000000000 |
--- a/client/internal/retry/retry.go |
+++ /dev/null |
@@ -1,66 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package retry |
- |
-import ( |
- "io" |
- "time" |
-) |
- |
-// Default defines the default retry parameters that should be used throughout |
-// the program. It is fine to update this variable on start up. |
-var Default = &Config{ |
- 10, |
- 100 * time.Millisecond, |
- 500 * time.Millisecond, |
- 5 * time.Second, |
-} |
- |
-// Config defines the retry properties. |
-type Config struct { |
- MaxTries int // Maximum number of retries. |
- SleepMax time.Duration // Maximum duration of a single sleep. |
- SleepBase time.Duration // Base sleep duration. |
- SleepMultiplicative time.Duration // Incremental sleep duration for each additional try. |
-} |
- |
-// Do runs a Retriable, potentially retrying it multiple times. |
-func (c *Config) Do(r Retriable) (err error) { |
- defer func() { |
- if err2 := r.Close(); err == nil { |
- err = err2 |
- } |
- }() |
- for i := 0; i < c.MaxTries; i++ { |
- err = r.Do() |
- if _, ok := err.(Error); !ok { |
- return err |
- } |
- if i != c.MaxTries-1 { |
- s := c.SleepBase + time.Duration(i)*c.SleepMultiplicative |
- if s > c.SleepMax { |
- s = c.SleepMax |
- } |
- time.Sleep(s) |
- } |
- } |
- return |
-} |
- |
-// Error is an error that can be retried. |
-type Error struct { |
- Err error |
-} |
- |
-func (e Error) Error() string { |
- return e.Err.Error() |
-} |
- |
-// Retriable is a task that can be retried. It is important that Do be |
-// idempotent. |
-type Retriable interface { |
- io.Closer |
- Do() error |
-} |