(t *downloadTask, ctx ...context.Context)
| 147 | } |
| 148 | |
| 149 | func (pd *ParallelDownload) handleTask(t *downloadTask, ctx ...context.Context) { |
| 150 | pd.wg.Add(1) |
| 151 | defer pd.wg.Done() |
| 152 | t.tempFilename = getRangeTempFile(t.rangeStart, t.rangeEnd, pd.tempDir) |
| 153 | if pd.client.DebugLog { |
| 154 | pd.client.log.Debugf("downloading segment %d-%d", t.rangeStart, t.rangeEnd) |
| 155 | } |
| 156 | file, err := os.OpenFile(t.tempFilename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) |
| 157 | if err != nil { |
| 158 | pd.errCh <- err |
| 159 | return |
| 160 | } |
| 161 | err = pd.client.Get(pd.url). |
| 162 | SetHeader("Range", fmt.Sprintf("bytes=%d-%d", t.rangeStart, t.rangeEnd)). |
| 163 | SetOutput(file). |
| 164 | Do(ctx...).Err |
| 165 | |
| 166 | if err != nil { |
| 167 | pd.errCh <- err |
| 168 | return |
| 169 | } |
| 170 | t.tempFile = file |
| 171 | pd.completeTask(t) |
| 172 | } |
| 173 | |
| 174 | func (pd *ParallelDownload) startWorker(ctx ...context.Context) { |
| 175 | for { |
no test coverage detected