diff --git a/eth/downloader/statesync.go b/eth/downloader/statesync.go index 60afcf431111554662330a5327dad2ebbc108898..5951dbac294fda80401852ad5b20316c56ec67fd 100644 --- a/eth/downloader/statesync.go +++ b/eth/downloader/statesync.go @@ -197,12 +197,7 @@ func (d *Downloader) runStateSync(s *stateSync) *stateSync { } // Start a timer to notify the sync loop if the peer stalled. req.timer = time.AfterFunc(req.timeout, func() { - select { - case timeout <- req: - case <-s.done: - // Prevent leaking of timer goroutines in the unlikely case where a - // timer is fired just before exiting runStateSync. - } + timeout <- req }) active[req.peer.id] = req } @@ -214,7 +209,6 @@ func (d *Downloader) runStateSync(s *stateSync) *stateSync { // are marked as idle and de facto _are_ idle. func (d *Downloader) spindownStateSync(active map[string]*stateReq, finished []*stateReq, timeout chan *stateReq, peerDrop chan *peerConnection) { log.Trace("State sync spinning down", "active", len(active), "finished", len(finished)) - for len(active) > 0 { var ( req *stateReq