Only stop timers if they are running

This commit is contained in:
Neil Alexander 2019-09-18 15:34:26 +01:00
parent 366fe7e772
commit c78a4cb28f
No known key found for this signature in database
GPG Key ID: A02A2019A2BB0944
2 changed files with 10 additions and 7 deletions

View File

@ -75,8 +75,12 @@ func (m *Multicast) Start() error {
// Stop is not implemented for multicast yet.
func (m *Multicast) Stop() error {
m.isOpen = false
m.announcer.Stop()
m.platformhandler.Stop()
if m.announcer != nil {
m.announcer.Stop()
}
if m.platformhandler != nil {
m.platformhandler.Stop()
}
m.sock.Close()
return nil
}

View File

@ -110,7 +110,6 @@ func (c *Core) _addPeerLoop() {
}
}
// Sit for a while
c.addPeerTimer = time.AfterFunc(time.Minute, func() {
c.Act(c, c._addPeerLoop)
})
@ -178,9 +177,7 @@ func (c *Core) _start(nc *config.NodeConfig, log *log.Logger) (*config.NodeState
return nil, err
}
c.addPeerTimer = time.AfterFunc(time.Second, func() {
c.Act(c, c._addPeerLoop)
})
c.Act(c, c._addPeerLoop)
c.log.Infoln("Startup complete")
return &c.config, nil
@ -194,7 +191,9 @@ func (c *Core) Stop() {
// This function is unsafe and should only be ran by the core actor.
func (c *Core) _stop() {
c.log.Infoln("Stopping...")
c.addPeerTimer.Stop()
if c.addPeerTimer != nil {
c.addPeerTimer.Stop()
}
for _, peer := range c.GetPeers() {
c.DisconnectPeer(peer.Port)
}