mirror of
https://github.com/logos-messaging/go-libp2p-pubsub.git
synced 2026-01-03 21:33:07 +00:00
release priority locks early when handling batches
This commit is contained in:
parent
e9e5a9913f
commit
3b98004eed
@ -592,14 +592,15 @@ func (p *PubSub) processLoop(ctx context.Context) {
|
||||
|
||||
func (p *PubSub) handlePendingPeers() {
|
||||
p.newPeersPrioLk.Lock()
|
||||
defer p.newPeersPrioLk.Unlock()
|
||||
|
||||
if len(p.newPeersPend) == 0 {
|
||||
p.newPeersPrioLk.Unlock()
|
||||
return
|
||||
}
|
||||
|
||||
newPeers := p.newPeersPend
|
||||
p.newPeersPend = make(map[peer.ID]struct{})
|
||||
p.newPeersPrioLk.Unlock()
|
||||
|
||||
for pid := range newPeers {
|
||||
if p.host.Network().Connectedness(pid) != network.Connected {
|
||||
@ -625,14 +626,15 @@ func (p *PubSub) handlePendingPeers() {
|
||||
|
||||
func (p *PubSub) handleDeadPeers() {
|
||||
p.peerDeadPrioLk.Lock()
|
||||
defer p.peerDeadPrioLk.Unlock()
|
||||
|
||||
if len(p.peerDeadPend) == 0 {
|
||||
p.peerDeadPrioLk.Unlock()
|
||||
return
|
||||
}
|
||||
|
||||
deadPeers := p.peerDeadPend
|
||||
p.peerDeadPend = make(map[peer.ID]struct{})
|
||||
p.peerDeadPrioLk.Unlock()
|
||||
|
||||
for pid := range deadPeers {
|
||||
ch, ok := p.peers[pid]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user