func loop(die <-chan int, t time.Duration, pin gpio.Pin) { tick := time.Tick(t) state := false fmt.Println("") for { select { case <-tick: if state { fmt.Print("\rclear ") pin.Clear() } else { fmt.Print("\rset ") pin.Set() } state = !state case <-die: fmt.Println("\ndying...") return } } }