progressAsWriter example without break quit
Vladimir Bauer
1 year, 10 months ago
| 53 | 53 | var qwg sync.WaitGroup |
| 54 | 54 | qwg.Add(1) |
| 55 | 55 | go func() { |
| 56 | quit: | |
| 56 | defer qwg.Done() | |
| 57 | 57 | for { |
| 58 | 58 | select { |
| 59 | 59 | case <-done: |
| 60 | 60 | // after done, underlying io.Writer returns mpb.DoneError |
| 61 | 61 | // so following isn't printed |
| 62 | 62 | log.Println("all done") |
| 63 | break quit | |
| 63 | return | |
| 64 | 64 | default: |
| 65 | 65 | log.Println("waiting for done") |
| 66 | 66 | time.Sleep(150 * time.Millisecond) |
| 67 | 67 | } |
| 68 | 68 | } |
| 69 | qwg.Done() | |
| 70 | 69 | }() |
| 71 | 70 | |
| 72 | 71 | bwg.Wait() |