// Start spins up the scanning loop. Call Stop() to exit the loop. func (rs *rangeScanner) Start(clock *hlc.Clock, stopper *util.Stopper) { stopper.Add(1) for _, queue := range rs.queues { queue.Start(clock, stopper) } go rs.scanLoop(clock, stopper) }
func (tq *testQueue) Start(clock *hlc.Clock, stopper *util.Stopper) { stopper.Add(1) go func() { for { select { case <-time.After(1 * time.Millisecond): tq.Lock() if len(tq.ranges) > 0 { tq.ranges = tq.ranges[1:] tq.processed++ } tq.Unlock() case <-stopper.ShouldStop(): tq.Lock() tq.done = true tq.Unlock() stopper.SetStopped() return } } }() }