Codebase list golang-github-cenkalti-backoff / 1e4cf3d
reuse timer in Retry func Cenk Alti 5 years ago
1 changed file(s) with 7 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
2727 func RetryNotify(operation Operation, b BackOff, notify Notify) error {
2828 var err error
2929 var next time.Duration
30 var t *time.Timer
3031
3132 cb := ensureContext(b)
3233
4849 notify(err, next)
4950 }
5051
51 t := time.NewTimer(next)
52 if t == nil {
53 t = time.NewTimer(next)
54 defer t.Stop()
55 } else {
56 t.Reset(next)
57 }
5258
5359 select {
5460 case <-cb.Context().Done():
55 t.Stop()
5661 return err
5762 case <-t.C:
5863 }