"A receive from a closed channel returns the zero value immediately" Close the tickerChan in the calling function, this causes "case <-c" to unblock immediately, ending the goroutine and stopping the ticker.