cmd/torrent/download.go | 16 ++++++++++++---- diff --git a/cmd/torrent/download.go b/cmd/torrent/download.go index 1fc4759f99f357cf9f5df69de14624bc9aa92bac..604820181dad5413084ec713272be892cb334119 100644 --- a/cmd/torrent/download.go +++ b/cmd/torrent/download.go @@ -171,10 +171,18 @@ go func() { defer wg.Done() waitForPieces(ctx, t, 0, t.NumPieces()) }() - if flags.LinearDiscard { - r := t.NewReader() - io.Copy(io.Discard, r) - r.Close() + done := make(chan struct{}) + go func() { + defer close(done) + if flags.LinearDiscard { + r := t.NewReader() + io.Copy(io.Discard, r) + r.Close() + } + }() + select { + case <-done: + case <-ctx.Done(): } } else { for _, f := range t.Files() {