I am implementing a multi part file downloader and I need help to find the blocking element in the following piece of code.
func downPart(wg *sync.WaitGroup, url string, dataChan chan []byte, range1, range2 int) { defer wg.Done() client := new(http.Client) req, _ := http.NewRequest("GET", url, nil) req.Header.Set("Range", strconv.Itoa(range1)+"-"+strconv.Itoa(range2)) data, err := client.Do(req) if err != nil { fmt.Println(err) return } dataByte := new(bytes.Buffer) dataByte.ReadFrom(data.Body) fmt.Println("Done") dataChan <- dataByte.Bytes() } func multiDownload(url string, length int) bool { var wg sync.WaitGroup x := 4 split := length / x fmt.Println(length) dataChan := make([]chan []byte, x) for i := 0; i < x; i++ { wg.Add(1) range1 := i * split range2 := (i+1)*split - 1 if range2 == length-2 { range2 = length } fmt.Println(len(dataChan), range1, range2) go downPart(&wg, url, dataChan[i], range1, range2) } var data []byte wg.Wait() for i := 0; i < x; i++ { fmt.Println("waiting") data = <-dataChan[i] fmt.Println(data) } return true } -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.