mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
les: fixed deadlock
This commit is contained in:
parent
5486e28bbf
commit
d338384f9e
1 changed files with 5 additions and 1 deletions
|
|
@ -243,7 +243,7 @@ func newClientPool(db ethdb.Database, minCap, freeClientCap uint64, clock mclock
|
|||
pool.tryActivateClients()
|
||||
for _, c := range pool.dropInactivePeers[pool.dropInactiveCounter] {
|
||||
if _, ok := pool.connectedMap[c.id]; ok && !c.active && !c.priority {
|
||||
pool.disconnect(c.peer)
|
||||
pool.disconnectLocked(c.peer)
|
||||
}
|
||||
}
|
||||
delete(pool.dropInactivePeers, pool.dropInactiveCounter)
|
||||
|
|
@ -406,6 +406,10 @@ func (f *clientPool) disconnect(p clientPeer) {
|
|||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
f.disconnectLocked(p)
|
||||
}
|
||||
|
||||
func (f *clientPool) disconnectLocked(p clientPeer) {
|
||||
// Short circuit if client pool is already closed.
|
||||
if f.closed {
|
||||
return
|
||||
|
|
|
|||
Loading…
Reference in a new issue