func handleRunOnces(bbs Bbs.ExecutorBBS) { tasks.Add(1) for { logger.Info("watch.desired") runOnces, stopWatching, errors := bbs.WatchForDesiredRunOnce() INNER: for { select { case runOnce, ok := <-runOnces: if !ok { logger.Info("watch.desired.closed") break INNER } tasks.Add(1) go func() { handleRunOnce(bbs, runOnce) tasks.Done() }() case err, ok := <-errors: if ok && err != nil { logger.Error("watch.desired.error", err) } break INNER case <-stop: stopWatching <- true tasks.Done() } } } }