func (s *Scheme) RunReader(reader factory.Reader) { timer := time.NewTimer(time.Duration(1<<63 - 1)) wg := sync.WaitGroup{} wg.Add(1) go func() { defer wg.Done() s.runReader(reader, timer) }() <-timer.C err := reader.Close() if err != nil { logs.Logger.Warning("Error closing reader, %s", err.Error()) } wg.Wait() s.outputReport() }