Files
Mike Cohen 9b0ec620b5 Check sparse files for large size before padding them out. (#2167)
* Updated error handling to use github.com/go-errors/errors
* Added Timeout parameter in query() plugin
2022-10-20 03:34:21 +10:00

30 lines
422 B
Go

package utils
import (
"context"
"time"
errors "github.com/go-errors/errors"
)
var (
timeoutError = errors.New("Timeout")
)
func Retry(ctx context.Context, cb func() error,
number int, sleep time.Duration) error {
var err error
for i := 0; i < number; i++ {
err = cb()
if err == nil {
return err
}
select {
case <-ctx.Done():
return timeoutError
case <-time.After(sleep):
}
}
return err
}