From 0c2b7d6010164797d85cac59e541d3ecc2397146 Mon Sep 17 00:00:00 2001 From: SChernykh Date: Wed, 23 Mar 2022 15:49:24 +0100 Subject: [PATCH] More time handling fixes --- src/common.h | 2 +- src/miner.h | 4 ++-- src/p2p_server.cpp | 2 +- src/p2pool.cpp | 2 +- src/zmq_reader.cpp | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/common.h b/src/common.h index 2cc97d4..33b9830 100644 --- a/src/common.h +++ b/src/common.h @@ -261,7 +261,7 @@ struct MinerData uint64_t median_timestamp; std::vector tx_backlog; - std::chrono::system_clock::time_point time_received; + std::chrono::high_resolution_clock::time_point time_received; }; struct ChainMain diff --git a/src/miner.h b/src/miner.h index fd418c5..897e6fe 100644 --- a/src/miner.h +++ b/src/miner.h @@ -51,10 +51,10 @@ private: std::vector m_minerThreads; volatile bool m_stopped; - std::chrono::time_point m_startTimestamp; + std::chrono::high_resolution_clock::time_point m_startTimestamp; std::atomic m_nonce; - std::chrono::time_point m_nonceTimestamp; + std::chrono::high_resolution_clock::time_point m_nonceTimestamp; const uint32_t m_extraNonce; uint64_t m_totalHashes; diff --git a/src/p2p_server.cpp b/src/p2p_server.cpp index b9db8e2..1016f92 100644 --- a/src/p2p_server.cpp +++ b/src/p2p_server.cpp @@ -1713,7 +1713,7 @@ bool P2PServer::P2PClient::on_block_broadcast(const uint8_t* buf, uint32_t size) if (peer_height < our_height) { if (our_height - peer_height < 5) { using namespace std::chrono; - const int64_t elapsed_ms = duration_cast(system_clock::now() - miner_data.time_received).count(); + const int64_t elapsed_ms = duration_cast(high_resolution_clock::now() - miner_data.time_received).count(); if (our_height - peer_height > 1) { LOGWARN(5, "peer " << static_cast(m_addrString) << " broadcasted a stale block (" << elapsed_ms << " ms late, mainchain height " << peer_height << ", expected >= " << our_height << "), ignoring it"); return true; diff --git a/src/p2pool.cpp b/src/p2pool.cpp index 07e7cc8..3aa91e8 100644 --- a/src/p2pool.cpp +++ b/src/p2pool.cpp @@ -238,7 +238,7 @@ void p2pool::handle_miner_data(MinerData& data) } data.tx_backlog.clear(); - data.time_received = std::chrono::system_clock::now(); + data.time_received = std::chrono::high_resolution_clock::now(); m_minerData = data; m_updateSeed = true; update_median_timestamp(); diff --git a/src/zmq_reader.cpp b/src/zmq_reader.cpp index 68214bb..98c4a2d 100644 --- a/src/zmq_reader.cpp +++ b/src/zmq_reader.cpp @@ -159,10 +159,10 @@ bool ZMQReader::connect(const char* address) m_subscriber.connect(address); using namespace std::chrono; - system_clock::time_point start_time = system_clock::now(); + steady_clock::time_point start_time = steady_clock::now(); while (!monitor.connected && monitor.check_event(-1)) { - const system_clock::time_point cur_time = system_clock::now(); + const steady_clock::time_point cur_time = steady_clock::now(); const int64_t elapsed_time = duration_cast(cur_time - start_time).count(); if (elapsed_time >= 3000) { LOGERR(1, "failed to connect to " << address);