forked from cerc-io/plugeth
Merge pull request #994 from karalabe/fix-cancel-double-close
eth/downloader: fix cancel channel double close
This commit is contained in:
commit
164ba56a60
@ -212,9 +212,14 @@ func (d *Downloader) Cancel() bool {
|
||||
return false
|
||||
}
|
||||
// Close the current cancel channel
|
||||
d.cancelLock.RLock()
|
||||
close(d.cancelCh)
|
||||
d.cancelLock.RUnlock()
|
||||
d.cancelLock.Lock()
|
||||
select {
|
||||
case <-d.cancelCh:
|
||||
// Channel was already closed
|
||||
default:
|
||||
close(d.cancelCh)
|
||||
}
|
||||
d.cancelLock.Unlock()
|
||||
|
||||
// reset the queue
|
||||
d.queue.Reset()
|
||||
|
Loading…
Reference in New Issue
Block a user