Unverified Commit a070e231 authored by Péter Szilágyi's avatar Péter Szilágyi Committed by GitHub

Merge pull request #20988 from karalabe/catchup-shutdown

eth: fix shutdown regression to abort downloads, not just cancel
parents 1aa83290 b0bbd471
...@@ -557,6 +557,8 @@ func (d *Downloader) spawnSync(fetchers []func() error) error { ...@@ -557,6 +557,8 @@ func (d *Downloader) spawnSync(fetchers []func() error) error {
func (d *Downloader) cancel() { func (d *Downloader) cancel() {
// Close the current cancel channel // Close the current cancel channel
d.cancelLock.Lock() d.cancelLock.Lock()
defer d.cancelLock.Unlock()
if d.cancelCh != nil { if d.cancelCh != nil {
select { select {
case <-d.cancelCh: case <-d.cancelCh:
...@@ -565,7 +567,6 @@ func (d *Downloader) cancel() { ...@@ -565,7 +567,6 @@ func (d *Downloader) cancel() {
close(d.cancelCh) close(d.cancelCh)
} }
} }
d.cancelLock.Unlock()
} }
// Cancel aborts all of the operations and waits for all download goroutines to // Cancel aborts all of the operations and waits for all download goroutines to
......
...@@ -222,7 +222,7 @@ func (cs *chainSyncer) loop() { ...@@ -222,7 +222,7 @@ func (cs *chainSyncer) loop() {
case <-cs.pm.quitSync: case <-cs.pm.quitSync:
if cs.doneCh != nil { 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 <-cs.doneCh
} }
return return
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment