connection.go | 5 +++-- diff --git a/connection.go b/connection.go index 289d20a80bd18c6dba13c0bc096a402d468adaaf..6664e01aa57ac0c07a9466b0ed02ca45a3991010 100644 --- a/connection.go +++ b/connection.go @@ -944,8 +944,9 @@ if !c.t.haveMetadataPiece(index) && !c.requestedMetadataPiece(index) { pending = append(pending, index) } } - for _, i := range rand.Perm(len(pending)) { - c.requestMetadataPiece(pending[i]) + rand.Shuffle(len(pending), func(i, j int) { pending[i], pending[j] = pending[j], pending[i] }) + for _, i := range pending { + c.requestMetadataPiece(i) } }