111
policy RetryPolicy,
112
isRetryable IsRetryable,
114
>
var zero T
115
>
var result T
116
>
var err error
117
>
var next time.Duration
118
>
119
>
if isRetryable == nil {
120
isRetryable = func(error) bool { return true }
121
}
122
123
>
deadline, hasDeadline := ctx.Deadline()
retry.go
124
>
125
>
timeSrc := clock.NewRealTimeSource()
126
>
r := NewRetrier(policy, timeSrc)
127
>
t := NewRetrier(throttleRetryPolicy, timeSrc)
128
>
for ctx.Err() == nil {
129
result, err = fn(ctx)
130
if err == nil {