Copyright 2009 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.

package time

import 
A Ticker holds a channel that delivers ``ticks'' of a clock at intervals.
type Ticker struct {
	C <-chan Time // The channel on which the ticks are delivered.
	r runtimeTimer
}
NewTicker returns a new Ticker containing a channel that will send the time on the channel after each tick. The period of the ticks is specified by the duration argument. The ticker will adjust the time interval or drop ticks to make up for slow receivers. The duration d must be greater than zero; if not, NewTicker will panic. Stop the ticker to release associated resources.
func ( Duration) *Ticker {
	if  <= 0 {
		panic(errors.New("non-positive interval for NewTicker"))
Give the channel a 1-element time buffer. If the client falls behind while reading, we drop ticks on the floor until the client catches up.
	 := make(chan Time, 1)
	 := &Ticker{
		C: ,
		r: runtimeTimer{
			when:   when(),
			period: int64(),
			f:      sendTime,
			arg:    ,
		},
	}
	startTimer(&.r)
	return 
}
Stop turns off a ticker. After Stop, no more ticks will be sent. Stop does not close the channel, to prevent a concurrent goroutine reading from the channel from seeing an erroneous "tick".
func ( *Ticker) () {
	stopTimer(&.r)
}
Reset stops a ticker and resets its period to the specified duration. The next tick will arrive after the new period elapses.
func ( *Ticker) ( Duration) {
	if .r.f == nil {
		panic("time: Reset called on uninitialized Ticker")
	}
	modTimer(&.r, when(), int64(), .r.f, .r.arg, .r.seq)
}
Tick is a convenience wrapper for NewTicker providing access to the ticking channel only. While Tick is useful for clients that have no need to shut down the Ticker, be aware that without a way to shut it down the underlying Ticker cannot be recovered by the garbage collector; it "leaks". Unlike NewTicker, Tick will return nil if d <= 0.
func ( Duration) <-chan Time {
	if  <= 0 {
		return nil
	}
	return NewTicker().C