r.log(log.Fstr("error reading torrent %s piece %d offset %d, %d bytes: %v",
r.t.infoHash.HexString(), firstPieceIndex, firstPieceOffset, len(b1), err))
if !r.t.updatePieceCompletion(firstPieceIndex) {
- r.log(log.Fstr("piece %d completion unchanged (%+v)", firstPieceIndex, r.t.piece(firstPieceIndex).completion()))
+ r.log(log.Fstr("piece %d completion unchanged", firstPieceIndex))
}
- r.t.iterPeers(func(c *Peer) {
- c.updateRequests()
- })
// Update the rest of the piece completions in the readahead window, without alerting to
// changes (since only the first piece, the one above, could have generated the read error
// we're currently handling).
c._stats.incrementPiecesDirtiedGood()
}
t.clearPieceTouchers(piece)
- p.incrementPendingWrites()
t.cl.unlock()
err := p.Storage().MarkComplete()
if err != nil {
t.logger.Printf("%T: error marking piece complete %d: %s", t.storage, piece, err)
}
t.cl.lock()
- p.decrementPendingWrites()
+
if t.closed.IsSet() {
return
}