func (p *Probe) drainAndPublish(rpt report.Report, rs chan report.Report) { ForLoop: for { select { case r := <-rs: rpt = rpt.Merge(r) default: break ForLoop } } if err := p.publisher.Publish(rpt); err != nil { log.Printf("publish: %v", err) } }