downloader: free up peers from work when the downloader resets

This commit is contained in:
obscuren
2015-04-18 20:25:55 +02:00
parent 7c5d50f627
commit 6830ddb659
3 changed files with 22 additions and 5 deletions

View File

@ -297,8 +297,9 @@ out:
// make sure that we have peers available for fetching. If all peers have been tried
// and all failed throw an error
if len(availablePeers) > 0 && d.queue.fetchPool.Size() == 0 {
if len(d.queue.fetching) == 0 {
d.queue.reset()
d.peers.reset()
return errPeersUnavailable
}
@ -337,6 +338,7 @@ out:
d.queue.deliver(pid, nil)
if peer := d.peers[pid]; peer != nil {
peer.demote()
peer.reset()
}
}