mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-01-11 23:04:26 +00:00
Merge branch 'dev/etan/nw-ranking' into feat/splitview
This commit is contained in:
commit
ee80daba2a
beacon_chain/networking
@ -456,15 +456,15 @@ func netKbps*(peer: Peer): float {.inline.} =
|
||||
## Returns current network throughput average value in Kbps for peer ``peer``.
|
||||
round(((peer.netThroughput.average / 1024) * 10_000) / 10_000)
|
||||
|
||||
func `<`(a, b: Peer): bool =
|
||||
## Comparison function, which first checks peer's scores, and if the peers'
|
||||
## score is equal it compares peers' network throughput.
|
||||
if a.score < b.score:
|
||||
true
|
||||
elif a.score == b.score:
|
||||
(a.netThroughput.average < b.netThroughput.average)
|
||||
# /!\ Must be exported to be seen by `peerCmp`
|
||||
func `<`*(a, b: Peer): bool =
|
||||
## Comparison function indicating `true` if peer `a` ranks worse than peer `b`
|
||||
if a.score != b.score:
|
||||
a.score < b.score
|
||||
elif a.netThroughput.average != b.netThroughput.average:
|
||||
a.netThroughput.average < b.netThroughput.average
|
||||
else:
|
||||
false
|
||||
system.`<`(a, b)
|
||||
|
||||
const
|
||||
maxRequestQuota = 1000000
|
||||
|
@ -502,7 +502,8 @@ proc acquireItemImpl[A, B](pool: PeerPool[A, B],
|
||||
let pindex =
|
||||
if filter == {PeerType.Incoming, PeerType.Outgoing}:
|
||||
if len(pool.outQueue) > 0 and len(pool.incQueue) > 0:
|
||||
# Don't think `<` is actually `<` here.
|
||||
# `<` here is the `PeerIndex` implementation (`HeapQueue` uses `<`),
|
||||
# which then flips the arguments to rank `>` on `A` using `pool.cmp`
|
||||
if pool.incQueue[0] < pool.outQueue[0]:
|
||||
inc(pool.acqIncPeersCount)
|
||||
let item = pool.incQueue.pop()
|
||||
|
Loading…
x
Reference in New Issue
Block a user