func processLines(done chan<- struct{}, getRx *regexp.Regexp, pageList safeslice.SafeSlice, lines <-chan string) { for line := range lines { if matches := getRx.FindStringSubmatch(line); matches != nil { pageList.Append(matches[1]) } } done <- struct{}{} }
func showResults(pageList safeslice.SafeSlice) { list := pageList.Close() counts := make(map[string]int) for _, page := range list { // uniquify counts[page.(string)] += 1 } for page, count := range counts { fmt.Printf("%8d %s\n", count, page) } }