Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.30 KB | None | 0 0
  1. func retry(attempts int, sleep time.Duration, fn func() error) error {
  2. if err := fn(); err != nil {
  3. if _, ok := err.(stop); ok {
  4. return err
  5. }
  6.  
  7. if attempts--; attempts > 0 {
  8. time.Sleep(sleep)
  9. return retry(attempts, 2*sleep, fn)
  10. }
  11. return err
  12. }
  13. return nil
  14. }
  15.  
  16. type stop struct {
  17. error
  18. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement