func (cl *Client) raisePiecePriority(t *torrent, piece int, priority piecePriority) {
if t.Pieces[piece].Priority < priority {
- cl.event.Broadcast()
cl.prioritizePiece(t, piece, priority)
+ cl.event.Broadcast()
}
}
func (me *Client) pieceChanged(t *torrent, piece int) {
correct := t.pieceComplete(piece)
p := t.Pieces[piece]
+ defer p.Event.Broadcast()
if correct {
p.Priority = PiecePriorityNone
p.PendingChunkSpecs = nil
delete(t.urgent, req)
}
}
- p.Event.Broadcast()
} else {
if p.numPendingChunks() == 0 {
t.pendAllChunkSpecs(int(piece))
me.replenishConnRequests(t, conn)
}
}
- if t.haveAllPieces() && me.config.NoUpload {
- t.ceaseNetworking()
- }
me.event.Broadcast()
}