code: func (c *CheckMonitor) run() {
  	// Get the randomized initial pause time
  	initialPauseTime := lib.RandomStagger(c.Interval)
  	next := time.After(initialPauseTime)
  	for {
  		select {
  		case <-next:
  			c.check()
  			next = time.After(c.Interval)
  		case <-c.stopCh:
  			return
  		}
  	}
  }
docs: // run is invoked by a goroutine to run until Stop() is called