func (sc *schedule) prunablePeers(peerTimout time.Duration, minRecvRate int64, now time.Time) []p2p.ID {
	prunable := []p2p.ID{}
	for peerID, peer := range sc.peers {
		if now.Sub(peer.lastTouched) > peerTimout || peer.lastRate < minRecvRate {
			prunable = append(prunable, peerID)
		}
	}

	return prunable
}
// XXX: this duplicates the logic of peersInactiveSince and peersSlowerThan
this duplicates the logic of peersInactiveSince and peersSlowerThan
// XXX : this duplicates the logic of peersInactiveSince and peersSlowerThan
func (sc *schedule) prunablePeers(peerTimout time.Duration, minRecvRate int64, now time.Time) []p2p.ID {
	prunable := []p2p.ID{}
	for peerID, peer := range sc.peers {
		if now.Sub(peer.lastTouched) > peerTimout || peer.lastRate < minRecvRate {
			prunable = append(prunable, peerID)
		}
	}
	return prunable
}
func ( sc * schedule ) prunablePeers ( peerTimout time . Duration , minRecvRate int64 , now time . Time ) [ ] p2p . ID { prunable := [ ] p2p . ID { } for peerID , peer := range sc . peers { if now . Sub ( peer . lastTouched ) > peerTimout || peer . lastRate < minRecvRate { prunable = append ( prunable , peerID ) } } return prunable }
this duplicates the logic of peersInactiveSince and peersSlowerThan
this duplicates the logic of peersInactiveSince and peersSlowerThan