1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-09-10 09:52:20 +08:00

refactor peerSet

This commit is contained in:
Jeromy
2014-12-16 18:33:36 +00:00
committed by Juan Batiz-Benet
parent f533678724
commit 69dd260236
3 changed files with 22 additions and 9 deletions

View File

@ -141,11 +141,11 @@ func (dht *IpfsDHT) FindProvidersAsync(ctx context.Context, key u.Key, count int
func (dht *IpfsDHT) findProvidersAsyncRoutine(ctx context.Context, key u.Key, count int, peerOut chan peer.Peer) {
defer close(peerOut)
ps := pset.NewPeerSet()
ps := pset.NewLimitedPeerSet(count)
provs := dht.providers.GetProviders(ctx, key)
for _, p := range provs {
// NOTE: assuming that this list of peers is unique
if ps.AddIfSmallerThan(p, count) {
if ps.TryAdd(p) {
select {
case peerOut <- p:
case <-ctx.Done():
@ -176,7 +176,7 @@ func (dht *IpfsDHT) findProvidersAsyncRoutine(ctx context.Context, key u.Key, co
// Add unique providers from request, up to 'count'
for _, prov := range provs {
if ps.AddIfSmallerThan(prov, count) {
if ps.TryAdd(prov) {
select {
case peerOut <- prov:
case <-ctx.Done():
@ -226,7 +226,7 @@ func (dht *IpfsDHT) addPeerListAsync(ctx context.Context, k u.Key, peers []*pb.M
}
dht.providers.AddProvider(k, p)
if ps.AddIfSmallerThan(p, count) {
if ps.TryAdd(p) {
select {
case out <- p:
case <-ctx.Done():