client.go | 11 ++++++----- diff --git a/client.go b/client.go index b2c9813c8b63c9d221609e85c99344d4f6e14a8e..c12eeb7d53cca85fcbb8685af3fadf811154cbf5 100644 --- a/client.go +++ b/client.go @@ -2584,12 +2584,13 @@ log.Printf("error writing chunk: %s", err) return } tr.Stop("write chunk") + me.mu.Lock() + if c.peerTouchedPieces == nil { + c.peerTouchedPieces = make(map[int]struct{}) + } + c.peerTouchedPieces[int(req.Index)] = struct{}{} + me.mu.Unlock() }() - // This could be made dependent on whether any actual data was written. - if c.peerTouchedPieces == nil { - c.peerTouchedPieces = make(map[int]struct{}) - } - c.peerTouchedPieces[int(req.Index)] = struct{}{} // log.Println("got chunk", req) me.event.Broadcast()