]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Improve num requests per piece status output
authorMatt Joiner <anacrolix@gmail.com>
Wed, 12 May 2021 11:48:23 +0000 (21:48 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 7 Jun 2021 03:01:39 +0000 (13:01 +1000)
peerconn.go

index 1721663c56ec3fbcd469a2ccff7e8093018deae8..a5d078e00c1743f0e26cea63366ec4c8c3fb5f2a 100644 (file)
@@ -8,6 +8,7 @@ import (
        "io"
        "math/rand"
        "net"
+       "sort"
        "strconv"
        "strings"
        "sync"
@@ -366,8 +367,19 @@ func (cn *Peer) writeStatus(w io.Writer, t *Torrent) {
                cn.downloadRate()/(1<<10),
        )
        fmt.Fprintf(w, "    requested pieces:")
+       type pieceNumRequestsType struct {
+               piece       pieceIndex
+               numRequests int
+       }
+       var pieceNumRequests []pieceNumRequestsType
        for piece, count := range cn.numRequestsByPiece() {
-               fmt.Fprintf(w, " %v (%v)", piece, count)
+               pieceNumRequests = append(pieceNumRequests, pieceNumRequestsType{piece, count})
+       }
+       sort.Slice(pieceNumRequests, func(i, j int) bool {
+               return pieceNumRequests[i].piece < pieceNumRequests[j].piece
+       })
+       for _, elem := range pieceNumRequests {
+               fmt.Fprintf(w, " %v(%v)", elem.piece, elem.numRequests)
        }
        fmt.Fprintf(w, "\n")
 }