refactor: Use NodeClock::duration for m_last_ping_time/m_min_ping_time/m_ping_wait

This refactor does not change any behavior and is needed for a future
commit, to avoid having to add duration casts.

It also improves the docs to better document that this is not a time
point, but a duration.

Also, it uses decltype to explain where the _::max() is coming from.
This commit is contained in:
MarcoFalke
2026-03-20 14:10:50 +01:00
parent 333316f6be
commit fa644e625b
6 changed files with 13 additions and 12 deletions

View File

@@ -210,8 +210,8 @@ public:
uint64_t nRecvBytes;
mapMsgTypeSize mapRecvBytesPerMsgType;
NetPermissionFlags m_permission_flags;
std::chrono::microseconds m_last_ping_time;
std::chrono::microseconds m_min_ping_time;
NodeClock::duration m_last_ping_time;
NodeClock::duration m_min_ping_time;
// Our address, as reported by the peer
std::string addrLocal;
// Address of this peer
@@ -890,11 +890,11 @@ public:
std::atomic<std::chrono::seconds> m_last_tx_time{0s};
/// Last measured round-trip duration. Used only for stats.
std::atomic<std::chrono::microseconds> m_last_ping_time{0us};
std::atomic<NodeClock::duration> m_last_ping_time{0us};
/// Lowest measured round-trip duration. Used as an inbound peer eviction
/// criterion in CConnman::AttemptToEvictConnection.
std::atomic<std::chrono::microseconds> m_min_ping_time{std::chrono::microseconds::max()};
std::atomic<NodeClock::duration> m_min_ping_time{NodeClock::duration::max()};
CNode(NodeId id,
std::shared_ptr<Sock> sock,
@@ -981,7 +981,8 @@ public:
std::string DisconnectMsg() const;
/// A ping-pong round trip has completed successfully. Update latest and minimum ping durations.
void PongReceived(std::chrono::microseconds ping_time) {
void PongReceived(NodeClock::duration ping_time)
{
m_last_ping_time = ping_time;
m_min_ping_time = std::min(m_min_ping_time.load(), ping_time);
}