From: Rob Pike Date: Fri, 7 Jan 2011 22:41:46 +0000 (-0800) Subject: time.NewTicker: panic for intervals <= 0. X-Git-Tag: weekly.2011-01-12~47 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f383062e014d44872e8bd450a538fc45b7bee5c8;p=gostls13.git time.NewTicker: panic for intervals <= 0. Not absolutely certain it's right to do this, but since there's no error value coming back, it seems reasonable. Fixes #1392. R=rsc, adg CC=golang-dev https://golang.org/cl/3896042 --- diff --git a/src/pkg/time/tick.go b/src/pkg/time/tick.go index 047468b81f..8f7d4226fe 100644 --- a/src/pkg/time/tick.go +++ b/src/pkg/time/tick.go @@ -5,6 +5,7 @@ package time import ( + "os" "sync" ) @@ -163,10 +164,11 @@ var onceStartTickerLoop sync.Once // NewTicker returns a new Ticker containing a channel that will // send the time, in nanoseconds, every ns nanoseconds. It adjusts the -// intervals to make up for pauses in delivery of the ticks. +// intervals to make up for pauses in delivery of the ticks. The value of +// ns must be greater than zero; if not, NewTicker will panic. func NewTicker(ns int64) *Ticker { if ns <= 0 { - return nil + panic(os.ErrorString("non-positive interval for NewTicker")) } c := make(chan int64, 1) // See comment on send in tickerLoop t := &Ticker{