Browse Source

p2p/tracker: only reschedule wake if previous didn't run

Péter Szilágyi 4 năm trước cách đây
mục cha
commit
ff3535e8e0
1 tập tin đã thay đổi với 3 bổ sung2 xóa
  1. 3 2
      p2p/tracker/tracker.go

+ 3 - 2
p2p/tracker/tracker.go

@@ -188,8 +188,9 @@ func (t *Tracker) Fulfil(peer string, version uint, code uint64, id uint64) {
 	t.expire.Remove(req.expire)
 	delete(t.pending, id)
 	if req.expire.Prev() == nil {
-		t.wake.Stop()
-		t.schedule()
+		if t.wake.Stop() {
+			t.schedule()
+		}
 	}
 	g := fmt.Sprintf("%s/%s/%d/%#02x", trackedGaugeName, t.protocol, req.version, req.reqCode)
 	metrics.GetOrRegisterGauge(g, nil).Dec(1)