aboutsummaryrefslogtreecommitdiffstats
path: root/swarm/network/priorityqueue/priorityqueue.go
diff options
context:
space:
mode:
authorAnton Evangelatov <anton.evangelatov@gmail.com>2019-03-21 04:30:34 +0800
committerGitHub <noreply@github.com>2019-03-21 04:30:34 +0800
commitbaded64d8819ece2bb715bf707882017dca03ae4 (patch)
treef7a198688d2be68ce4fad5030363ae31b1500eef /swarm/network/priorityqueue/priorityqueue.go
parentc53c5e616f04ae8b041bfb64309cbc7f3e70303a (diff)
downloadgo-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.go23
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
}