diff options
author | Grail Finder <wohilas@gmail.com> | 2023-02-18 21:10:50 +0600 |
---|---|---|
committer | Grail Finder <wohilas@gmail.com> | 2023-02-18 21:10:50 +0600 |
commit | 1ec6ff8ec85ea4597b4897f1d2f1a89ec5e1abb1 (patch) | |
tree | ca809686b6c3928b5f3c6879931e70decbe428d1 /workers.go | |
parent | df498c756b1cb0e3f045bc88396223272b713a4c (diff) |
Feat: close channel before iterating
Diffstat (limited to 'workers.go')
-rw-r--r-- | workers.go | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -2,15 +2,22 @@ package main import "fmt" -func worker(queue chan *Utterance, worknumber int, geshaft chan *Utterance) { +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 } - ut := <-queue - if err := cutoutClipAndTranscode(ut); err == nil { - geshaft <- ut + select { + + case ut := <-queue: + if err := cutoutClipAndTranscode(ut); err == nil { + geshaft <- ut + } + + case <-done: + fmt.Println("done signal, number", worknumber) + return } } } |