]> Sergey Matveev's repositories - btrtrc.git/blobdiff - torrent.go
Return errors from Reader if data downloading won't occur
[btrtrc.git] / torrent.go
index ace386eb3fce410cde0a57bf9742fea57e21ee0e..561d3d60bbd9ef265af1f748d19f6b5ca1a9dd24 100644 (file)
@@ -2024,6 +2024,7 @@ func (t *Torrent) onWriteChunkErr(err error) {
                go t.userOnWriteChunkErr(err)
                return
        }
+       t.logger.WithDefaultLevel(log.Critical).Printf("default chunk write error handler: disabling data download")
        t.disallowDataDownloadLocked()
 }
 
@@ -2038,12 +2039,14 @@ func (t *Torrent) disallowDataDownloadLocked() {
        t.iterPeers(func(c *peer) {
                c.updateRequests()
        })
+       t.tickleReaders()
 }
 
 func (t *Torrent) AllowDataDownload() {
        t.cl.lock()
        defer t.cl.unlock()
        t.dataDownloadDisallowed = false
+       t.tickleReaders()
        t.iterPeers(func(c *peer) {
                c.updateRequests()
        })