From 8706d326bac7f7f5a1f021620718e1cc4ad77cee Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Tue, 4 May 2021 16:08:21 +1000 Subject: [PATCH] cmd/torrent: Ensure progress is emitted at consistent intervals --- cmd/torrent/main.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/cmd/torrent/main.go b/cmd/torrent/main.go index 2271b931..0d32aa4b 100644 --- a/cmd/torrent/main.go +++ b/cmd/torrent/main.go @@ -35,12 +35,13 @@ import ( func torrentBar(t *torrent.Torrent, pieceStates bool) { go func() { + start := time.Now() if t.Info() == nil { - fmt.Printf("getting torrent info for %q\n", t.Name()) + fmt.Printf("%v: getting torrent info for %q\n", time.Since(start), t.Name()) <-t.GotInfo() } var lastLine string - for { + for range time.Tick(time.Second) { var completedPieces, partialPieces int psrs := t.PieceStateRuns() for _, r := range psrs { @@ -52,7 +53,8 @@ func torrentBar(t *torrent.Torrent, pieceStates bool) { } } line := fmt.Sprintf( - "downloading %q: %s/%s, %d/%d pieces completed (%d partial)\n", + "%v: downloading %q: %s/%s, %d/%d pieces completed (%d partial)\n", + time.Since(start), t.Name(), humanize.Bytes(uint64(t.BytesCompleted())), humanize.Bytes(uint64(t.Length())), @@ -67,7 +69,6 @@ func torrentBar(t *torrent.Torrent, pieceStates bool) { if pieceStates { fmt.Println(psrs) } - time.Sleep(time.Second) } }() } -- 2.48.1