SleeperFuncCtx wraps the given RetrySleeper with a context, so it can be cancelled, or have a deadline.
(sleeperFunc RetrySleeper, ctx context.Context)
| 521 | |
| 522 | // SleeperFuncCtx wraps the given RetrySleeper with a context, so it can be cancelled, or have a deadline. |
| 523 | func SleeperFuncCtx(sleeperFunc RetrySleeper, ctx context.Context) RetrySleeper { |
| 524 | return func(retryCount int) (bool, int) { |
| 525 | if err := ctx.Err(); err != nil { |
| 526 | return false, -1 |
| 527 | } |
| 528 | return sleeperFunc(retryCount) |
| 529 | } |
| 530 | } |
| 531 | |
| 532 | // Create a RetrySleeper that will double the retry time on every iteration and |
| 533 | // use the given parameters. |