]> Sergey Matveev's repositories - btrtrc.git/blobdiff - torrent.go
Store chunk data without holding client lock
[btrtrc.git] / torrent.go
index c4bb59905fa9fdcb91986371795c3092ce628cf5..43d45d5c8c99f16aa53cab968b83dd60605ca484 100644 (file)
@@ -638,6 +638,8 @@ func (t *torrent) pieceLength(piece int) (len_ pp.Integer) {
 
 func (t *torrent) hashPiece(piece pp.Integer) (ps pieceSum) {
        hash := pieceHash.New()
+       p := t.Pieces[piece]
+       p.pendingWrites.Wait()
        t.data.WriteSectionTo(hash, int64(piece)*t.Info.PieceLength, t.Info.PieceLength)
        util.CopyExact(ps[:], hash.Sum(nil))
        return