go func() {
s := leecherGreeting.torrent.pieceStateChanges.Subscribe()
defer s.Close()
- for i := range s.Values {
- log.Print(i)
+ for v := range s.Values {
+ log.Printf("%#v", v)
}
log.Print("finished")
}()
return nil
}
+type PieceStateChange struct {
+ Index int
+ PieceState
+}
+
func (t *torrent) publishPieceChange(piece int) {
cur := t.pieceState(piece)
p := &t.Pieces[piece]
if cur != p.PublicPieceState {
- t.pieceStateChanges.Publish(piece)
+ p.PublicPieceState = cur
+ t.pieceStateChanges.Publish(PieceStateChange{
+ piece,
+ cur,
+ })
}
- p.PublicPieceState = cur
}
func (t *torrent) pieceNumPendingChunks(piece int) int {