Description

Reset changes the timer to expire after duration d. It returns true if the timer had been active, false if the timer had expired or been stopped.

To reuse an active timer, always call its Stop method first and—if it had expired—drain the value from its channel. For example:

if !t.Stop() {
	<-t.C
}
t.Reset(d)

This should not be done concurrent to other receives from the Timer's channel.

Note that it is not possible to use Reset's return value correctly, as there is a race condition between draining the channel and the new timer expiring. Reset should always be used in concert with Stop, as described above. The return value exists to preserve compatibility with existing programs.

Reset is referenced in 616 repositories

github.com/golang/go github.com/OpenSnaproute/l3 github.com/syncthing/syncthing

...