appvault mirror proven 2m0s ago
1package main
3import "time"
5// retry calls fn up to n times, sleeping between attempts.
6func retry(n int, delay time.Duration, fn func() error) error {
7 var err error
8 for i := 0; i < n; i++ {
9 if err = fn(); err == nil {
10 return nil
11 }
12 time.Sleep(delay)
13 }
14 return err