remove peer timeout logic from the switch, so switch peer entrires are only removed when the peer struct is removed

This commit is contained in:
Arceliar 2018-06-06 23:23:16 -05:00
parent 3b783fbf97
commit 85afe187ff
3 changed files with 11 additions and 17 deletions

View file

@ -150,6 +150,9 @@ func (ps *peers) removePeer(port switchPort) {
if port == 0 {
return
} // Can't remove self peer
ps.core.router.doAdmin(func() {
ps.core.switchTable.removePeer(port)
})
ps.mutex.Lock()
oldPorts := ps.getPorts()
p, isIn := oldPorts[port]
@ -160,8 +163,11 @@ func (ps *peers) removePeer(port switchPort) {
delete(newPorts, port)
ps.putPorts(newPorts)
ps.mutex.Unlock()
if isIn && p.close != nil {
p.close()
if isIn {
if p.close != nil {
p.close()
}
close(p.linkIn)
}
}