eth: fix shutdown regression to abort downloads, not just cancel

pull/20988/head
Péter Szilágyi 5 years ago
parent 1aa83290f5
commit b0bbd47185
No known key found for this signature in database
GPG Key ID: E9AE538CEDF8293D
  1. 3
      eth/downloader/downloader.go
  2. 2
      eth/sync.go

@ -557,6 +557,8 @@ func (d *Downloader) spawnSync(fetchers []func() error) error {
func (d *Downloader) cancel() {
// Close the current cancel channel
d.cancelLock.Lock()
defer d.cancelLock.Unlock()
if d.cancelCh != nil {
select {
case <-d.cancelCh:
@ -565,7 +567,6 @@ func (d *Downloader) cancel() {
close(d.cancelCh)
}
}
d.cancelLock.Unlock()
}
// Cancel aborts all of the operations and waits for all download goroutines to

@ -222,7 +222,7 @@ func (cs *chainSyncer) loop() {
case <-cs.pm.quitSync:
if cs.doneCh != nil {
cs.pm.downloader.Cancel()
cs.pm.downloader.Terminate() // Double term is fine, Cancel would block until queue is emptied
<-cs.doneCh
}
return

Loading…
Cancel
Save