type DelayFunc … // Timer takes an arbitrary delay function and returns a timer that can handle arbitrary interval changes. // Use Backoff{...}.Timer() for simple delays and more efficient timers. func (fn DelayFunc) Timer(c clock.Clock) Timer { … } // Until takes an arbitrary delay function and runs until cancelled or the condition indicates exit. This // offers all of the functionality of the methods in this package. func (fn DelayFunc) Until(ctx context.Context, immediate, sliding bool, condition ConditionWithContextFunc) error { … } // Concurrent returns a version of this DelayFunc that is safe for use by multiple goroutines that // wish to share a single delay timer. func (fn DelayFunc) Concurrent() DelayFunc { … }