Codebase list golang-github-vbauerster-mpb / 2194f97
make sure muliplex goroutine quits eventually Vladimir Bauer 7 years ago
1 changed file(s) with 8 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
317317
318318 multiplex := func(c <-chan time.Time) {
319319 defer wg.Done()
320 // source channels are never closed (time.Ticker never closes associated
321 // channel), so we cannot simply range over a c, instead we use select
322 // inside infinite loop
320323 for {
321324 select {
322325 case v := <-c:
323 multiplexedStream <- v
326 select {
327 case multiplexedStream <- v:
328 case <-done:
329 return
330 }
324331 case <-done:
325332 return
326333 }