From: Matt Joiner Date: Sat, 1 Jul 2017 06:01:38 +0000 (+1000) Subject: Move logging inside client lock, for Torrent.String X-Git-Tag: v1.0.0~457 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=824441efa0f88756a054e2c9d6c25bf0dff6a6fb;p=btrtrc.git Move logging inside client lock, for Torrent.String Fixes #163 --- diff --git a/reader.go b/reader.go index 1c8bce79..ed4da8aa 100644 --- a/reader.go +++ b/reader.go @@ -208,8 +208,8 @@ func (r *Reader) readOnceAt(b []byte, pos int64, ctxErr *error) (n int, err erro err = nil return } - log.Printf("error reading torrent %q piece %d offset %d, %d bytes: %s", r.t, pi, po, len(b1), err) r.t.cl.mu.Lock() + log.Printf("error reading torrent %q piece %d offset %d, %d bytes: %s", r.t, pi, po, len(b1), err) r.t.updateAllPieceCompletions() r.t.updateAllPiecePriorities() r.t.cl.mu.Unlock() diff --git a/torrent.go b/torrent.go index f60b3865..337040f5 100644 --- a/torrent.go +++ b/torrent.go @@ -1245,13 +1245,15 @@ func (t *Torrent) dhtAnnouncer() { return } err := t.announceDHT(true) - if err == nil { + func() { cl.mu.Lock() - t.numDHTAnnounces++ - cl.mu.Unlock() - } else { - log.Printf("error announcing %q to DHT: %s", t, err) - } + defer cl.mu.Unlock() + if err == nil { + t.numDHTAnnounces++ + } else { + log.Printf("error announcing %q to DHT: %s", t, err) + } + }() select { case <-t.closed.LockedChan(&cl.mu): return