Description

Stop prevents the Timer from firing. It returns true if the call stops the timer, false if the timer has already expired or been stopped. Stop does not close the channel, to prevent a read from the channel succeeding incorrectly.

To prevent the timer firing after a call to Stop, check the return value and drain the channel. For example:

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

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