Codebase list golang-github-vbauerster-mpb / 511299b
progressAsWriter example with nop bar Vladimir Bauer 1 year, 10 months ago
1 changed file(s) with 10 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
1212
1313 func main() {
1414 total, numBars := 100, 2
15 var wg sync.WaitGroup
16 wg.Add(numBars)
15 var bwg sync.WaitGroup
16 bwg.Add(numBars)
1717 done := make(chan interface{})
18 p := mpb.New(
19 mpb.WithWidth(64),
20 mpb.WithWaitGroup(&wg),
21 mpb.WithShutdownNotifier(done),
22 )
18 p := mpb.New(mpb.WithWidth(64), mpb.WithShutdownNotifier(done))
2319
2420 log.SetOutput(p)
21 nopBar := p.MustAdd(0, nil)
2522
2623 for i := 0; i < numBars; i++ {
2724 name := fmt.Sprintf("Bar#%d:", i)
3835 )
3936 // simulating some work
4037 go func() {
41 defer wg.Done()
38 defer bwg.Done()
4239 rng := rand.New(rand.NewSource(time.Now().UnixNano()))
4340 max := 100 * time.Millisecond
4441 for i := 0; i < total; i++ {
6663 break quit
6764 default:
6865 log.Println("waiting for done")
69 time.Sleep(100 * time.Millisecond)
66 time.Sleep(150 * time.Millisecond)
7067 }
7168 }
7269 qwg.Done()
7370 }()
7471
72 bwg.Wait()
73 log.Println("completing nop bar")
74 nopBar.EnableTriggerComplete()
75
7576 p.Wait()
7677 qwg.Wait()
7778 }