mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-25 04:17:44 +08:00
Merge pull request #3169 from ipfs/fix/bitswap-goro-leak
bitswap: Don't clear 'active' until Connect calls are finished
This commit is contained in:
commit
6f437fbbf4
@ -209,14 +209,18 @@ func (bs *Bitswap) providerQueryManager(ctx context.Context) {
|
||||
child, cancel := context.WithTimeout(e.Ctx, providerRequestTimeout)
|
||||
defer cancel()
|
||||
providers := bs.network.FindProvidersAsync(child, e.Key, maxProvidersPerRequest)
|
||||
wg := &sync.WaitGroup{}
|
||||
for p := range providers {
|
||||
wg.Add(1)
|
||||
go func(p peer.ID) {
|
||||
defer wg.Done()
|
||||
err := bs.network.ConnectTo(child, p)
|
||||
if err != nil {
|
||||
log.Debug("failed to connect to provider %s: %s", p, err)
|
||||
}
|
||||
}(p)
|
||||
}
|
||||
wg.Wait()
|
||||
activeLk.Lock()
|
||||
kset.Remove(e.Key)
|
||||
activeLk.Unlock()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user