heap.Init got lost somewhere along the way? Need a unit test for this.
return false
}
-func (t *Torrent) worstUnclosedConns() (ret []*connection) {
+func (t *Torrent) unclosedConnsAsSlice() (ret []*connection) {
ret = make([]*connection, 0, len(t.conns))
for c := range t.conns {
if !c.closed.IsSet() {
// pieces, or has been in worser half of the established connections for more
// than a minute.
func (t *Torrent) worstBadConn() *connection {
- wcs := worseConnSlice{t.worstUnclosedConns()}
+ wcs := worseConnSlice{t.unclosedConnsAsSlice()}
+ heap.Init(&wcs)
for wcs.Len() != 0 {
c := heap.Pop(&wcs).(*connection)
if c.UnwantedChunksReceived >= 6 && c.UnwantedChunksReceived > c.UsefulChunksReceived {