]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Rework Torrent pending requests assertions
authorMatt Joiner <anacrolix@gmail.com>
Sat, 16 Jun 2018 07:00:50 +0000 (17:00 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Sat, 16 Jun 2018 07:00:50 +0000 (17:00 +1000)
Should provide more info, and sooner for #249.

connection.go
torrent.go

index 2f9b5494f61fecf0769f86a7b18e7a06f7e0f708..4135978716fba7747b96139f1affbe613c7e81d4 100644 (file)
@@ -1369,7 +1369,15 @@ func (c *connection) deleteRequest(r request) bool {
                return false
        }
        delete(c.requests, r)
-       c.t.pendingRequests[r]--
+       pr := c.t.pendingRequests
+       pr[r]--
+       n := pr[r]
+       if n == 0 {
+               delete(pr, r)
+       }
+       if n < 0 {
+               panic(n)
+       }
        c.updateRequests()
        return true
 }
index 3259dcc4d9db45ad542b1beab0a99612a03653b3..2a002d4153c02cc9511acb7f8b3849bb9e72d4c0 100644 (file)
@@ -1231,10 +1231,8 @@ func (t *Torrent) deleteConnection(c *connection) (ret bool) {
 }
 
 func (t *Torrent) assertNoPendingRequests() {
-       for _, num := range t.pendingRequests {
-               if num != 0 {
-                       panic(num)
-               }
+       if len(t.pendingRequests) != 0 {
+               panic(t.pendingRequests)
        }
 }