]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Move logging inside client lock, for Torrent.String
authorMatt Joiner <anacrolix@gmail.com>
Sat, 1 Jul 2017 06:01:38 +0000 (16:01 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Sat, 1 Jul 2017 06:01:38 +0000 (16:01 +1000)
Fixes #163

reader.go
torrent.go

index 1c8bce797dc4d9b9450ca5a865cc039b5b0a64b0..ed4da8aa3be30460faa7e660d036ee634895eee8 100644 (file)
--- 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()
index f60b3865f0c02b74c422783ba5f622f8f2fcfd8b..337040f5dd7303376748ffa021fb42d1d433c26c 100644 (file)
@@ -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