Codebase list golang-github-vbauerster-mpb / 8e50bd3
Preserve bar's ordrer showcase Vladimir Bauer 8 years ago
1 changed file(s) with 6 addition(s) and 4 deletion(s). Raw diff Collapse all Expand all
2424 for i, url := range [...]string{url1, url2} {
2525 wg.Add(1)
2626 name := fmt.Sprintf("url%d:", i+1)
27 go download(&wg, p, name, url)
27 go download(&wg, p, name, url, i)
2828 }
2929
3030 p.Stop()
3131 fmt.Println("Finished")
3232 }
3333
34 func download(wg *sync.WaitGroup, p *mpb.Progress, name, url string) {
34 func download(wg *sync.WaitGroup, p *mpb.Progress, name, url string, n int) {
3535 defer wg.Done()
3636 resp, err := http.Get(url)
3737 if err != nil {
6565 ),
6666 mpb.AppendDecorators(decor.ETA(5, decor.DwidthSync)),
6767 )
68 // Respect the order
69 p.UpdateBarPriority(bar, n)
6870
6971 // create proxy reader
7072 reader := bar.ProxyReader(resp.Body)
7173 // and copy from reader
7274 _, err = io.Copy(dest, reader)
7375
74 if closeErr := dest.Close(); err == nil {
75 err = closeErr
76 if e := dest.Close(); err == nil {
77 err = e
7678 }
7779 if err != nil {
7880 log.Printf("%s: %v", name, err)