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