diff options
author | Anton Evangelatov <anton.evangelatov@gmail.com> | 2019-03-21 04:30:34 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-21 04:30:34 +0800 |
commit | baded64d8819ece2bb715bf707882017dca03ae4 (patch) | |
tree | f7a198688d2be68ce4fad5030363ae31b1500eef /swarm/network/priorityqueue/priorityqueue.go | |
parent | c53c5e616f04ae8b041bfb64309cbc7f3e70303a (diff) | |
download | go-tangerine-baded64d8819ece2bb715bf707882017dca03ae4.tar go-tangerine-baded64d8819ece2bb715bf707882017dca03ae4.tar.gz go-tangerine-baded64d8819ece2bb715bf707882017dca03ae4.tar.bz2 go-tangerine-baded64d8819ece2bb715bf707882017dca03ae4.tar.lz go-tangerine-baded64d8819ece2bb715bf707882017dca03ae4.tar.xz go-tangerine-baded64d8819ece2bb715bf707882017dca03ae4.tar.zst go-tangerine-baded64d8819ece2bb715bf707882017dca03ae4.zip |
swarm/network: measure time of messages in priority queue (#19250)
Diffstat (limited to 'swarm/network/priorityqueue/priorityqueue.go')
-rw-r--r-- | swarm/network/priorityqueue/priorityqueue.go | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/swarm/network/priorityqueue/priorityqueue.go b/swarm/network/priorityqueue/priorityqueue.go index 538502605..056e85ec1 100644 --- a/swarm/network/priorityqueue/priorityqueue.go +++ b/swarm/network/priorityqueue/priorityqueue.go @@ -28,8 +28,9 @@ package priorityqueue import ( "context" "errors" + "time" - "github.com/ethereum/go-ethereum/log" + "github.com/ethereum/go-ethereum/metrics" ) var ( @@ -69,13 +70,16 @@ READ: case <-ctx.Done(): return case x := <-q: - log.Trace("priority.queue f(x)", "p", p, "len(Queues[p])", len(pq.Queues[p])) - f(x) + val := x.(struct { + v interface{} + t time.Time + }) + f(val.v) + metrics.GetOrRegisterResettingTimer("pq.run", nil).UpdateSince(val.t) p = top default: if p > 0 { p-- - log.Trace("priority.queue p > 0", "p", p) continue READ } p = top @@ -83,7 +87,6 @@ READ: case <-ctx.Done(): return case <-pq.wakeup: - log.Trace("priority.queue wakeup", "p", p) } } } @@ -95,9 +98,15 @@ func (pq *PriorityQueue) Push(x interface{}, p int) error { if p < 0 || p >= len(pq.Queues) { return errBadPriority } - log.Trace("priority.queue push", "p", p, "len(Queues[p])", len(pq.Queues[p])) + val := struct { + v interface{} + t time.Time + }{ + x, + time.Now(), + } select { - case pq.Queues[p] <- x: + case pq.Queues[p] <- val: default: return ErrContention } |