1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
package main import "fmt" func worker(queue chan *Utterance, done chan bool, worknumber int, geshaft chan *Utterance) { for { if len(queue) == 0 { fmt.Println("empty queue, number", worknumber) return } select { case ut := <-queue: if err := cutoutClipAndTranscode(ut); err == nil { geshaft <- ut } case <-done: fmt.Println("done signal, number", worknumber) return } } }