fix shutdown deadlock

This commit is contained in:
Arceliar 2020-03-29 00:48:41 -05:00
parent e926a3be6d
commit d47797088f
2 changed files with 4 additions and 2 deletions

View File

@ -195,8 +195,10 @@ func (c *Core) _stop() {
c.addPeerTimer.Stop()
}
c.link.stop()
/* FIXME this deadlocks, need a waitgroup or something to coordinate shutdown
for _, peer := range c.GetPeers() {
c.DisconnectPeer(peer.Port)
}
*/
c.log.Infoln("Stopped")
}

View File

@ -250,7 +250,7 @@ func (t *switchTable) cleanRoot() {
t.time = now
if t.data.locator.root != t.key {
t.data.seq++
t.updateTable()
defer t.updateTable()
t.core.router.reset(nil)
}
t.data.locator = switchLocator{root: t.key, tstamp: now.Unix()}
@ -524,7 +524,7 @@ func (t *switchTable) unlockedHandleMsg(msg *switchMsg, fromPort switchPort, rep
t.core.peers.sendSwitchMsgs(t)
}
if true || doUpdate {
t.updateTable()
defer t.updateTable()
}
return
}