Skip to content

Commit

Permalink
Merge bitcoin#30372: util: Use SteadyClock in RandAddSeedPerfmon
Browse files Browse the repository at this point in the history
fa360b0 util: Use SteadyClock in RandAddSeedPerfmon (MarcoFalke)

Pull request description:

  `GetTime` is mockable in tests and system-changeable in production. This should be fine and not lead to issues, but using `SteadyClock` is more correct in this context to do an expensive task only so often.

ACKs for top commit:
  sipa:
    utACK fa360b0
  TheCharlatan:
    ACK fa360b0

Tree-SHA512: 1958b9e9e356c9801ac981014b4b528cfc8ce6612853d8b45f6519b16f0b1839ff765abb8b3368b86f00958ddc6a686f6b90278c57a7ad4858bdf3ea33775cca
  • Loading branch information
fanquake committed Jul 12, 2024
2 parents 66114cd + fa360b0 commit 4d6af61
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/randomenv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ void RandAddSeedPerfmon(CSHA512& hasher)

// This can take up to 2 seconds, so only do it every 10 minutes.
// Initialize last_perfmon to 0 seconds, we don't skip the first call.
static std::atomic<std::chrono::seconds> last_perfmon{0s};
static std::atomic<SteadyClock::time_point> last_perfmon{SteadyClock::time_point{0s}};
auto last_time = last_perfmon.load();
auto current_time = GetTime<std::chrono::seconds>();
if (current_time < last_time + std::chrono::minutes{10}) return;
auto current_time = SteadyClock::now();
if (current_time < last_time + 10min) return;
last_perfmon = current_time;

std::vector<unsigned char> vData(250000, 0);
Expand Down

0 comments on commit 4d6af61

Please sign in to comment.