github.com/evrenkutar/randevent@v0.0.0-20210506235643-7d1e39a375e1/cmd/interval_ticker.go (about)

     1  package cmd
     2  
     3  import (
     4  	"time"
     5  )
     6  
     7  func start(done <-chan bool, ticker *time.Ticker, emitter Emitter) {
     8  	for {
     9  		select {
    10  		case <-done:
    11  			emitter.doneChan <- true
    12  			return
    13  		case tick := <-ticker.C:
    14  			emitter.tickChan <- tick
    15  		}
    16  	}
    17  }