Codebase list golang-github-vbauerster-mpb / 46fd701
refactoring: specific types Vladimir Bauer 3 years ago
1 changed file(s) with 8 addition(s) and 9 deletion(s). Raw diff Collapse all Expand all
1414 var doneTasks uint32
1515
1616 type task struct {
17 id int
18 total int
17 id uint32
18 total int64
1919 bar *mpb.Bar
2020 }
2121
2222 func main() {
2323 numTasks := 4
2424
25 var total int
25 var total int64
2626 var filler mpb.BarFiller
2727 tasks := make([]*task, numTasks)
2828
2929 for i := 0; i < numTasks; i++ {
3030 task := &task{
31 id: i,
32 total: rand.Intn(101) + 100,
31 id: uint32(i),
32 total: rand.Int63n(666) + 100,
3333 }
3434 total += task.total
3535 filler = middleware(filler, task.id)
4545 if i != 0 {
4646 waitBar = tasks[i-1].bar
4747 }
48 total := tasks[i].total
49 bar := p.AddBar(int64(total),
48 bar := p.AddBar(tasks[i].total,
5049 mpb.BarExtenderRev(filler),
5150 mpb.BarQueueAfter(waitBar, false),
5251 mpb.PrependDecorators(
8382 p.Wait()
8483 }
8584
86 func middleware(base mpb.BarFiller, id int) mpb.BarFiller {
85 func middleware(base mpb.BarFiller, id uint32) mpb.BarFiller {
8786 var done bool
8887 fn := func(w io.Writer, _ int, st decor.Statistics) {
8988 if !done {
90 cur := atomic.LoadUint32(&curTask) == uint32(id)
89 cur := atomic.LoadUint32(&curTask) == id
9190 if !cur {
9291 fmt.Fprintf(w, " Taksk %02d\n", id)
9392 return