type Ticker … // NewTicker returns a new Ticker containing a channel that will send // the time at times specified by the BackOff argument. Ticker is // guaranteed to tick at least once. The channel is closed when Stop // method is called or BackOff stops. It is not safe to manipulate the // provided backoff policy (notably calling NextBackOff or Reset) // while the ticker is running. func NewTicker(b BackOff) *Ticker { … } // NewTickerWithTimer returns a new Ticker with a custom timer. // A default timer that uses system timer is used when nil is passed. func NewTickerWithTimer(b BackOff, timer Timer) *Ticker { … } // Stop turns off a ticker. After Stop, no more ticks will be sent. func (t *Ticker) Stop() { … } func (t *Ticker) run() { … } func (t *Ticker) send(tick time.Time) <-chan time.Time { … }