diff options
author | Louis Williams <louis.williams@mongodb.com> | 2020-12-18 14:06:37 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-12-18 22:36:35 +0000 |
commit | 49b56d28633d5fbfb090ed91e90b9c975ba61190 (patch) | |
tree | 84faee4195f1ad906f03eb5b0d6d38b2b11c4c68 /src/mongo/db/stats | |
parent | a56d682b08d9a72ef54fde6d47c978b8eb54bfbc (diff) | |
download | mongo-49b56d28633d5fbfb090ed91e90b9c975ba61190.tar.gz |
SERVER-53443 Busy wait in ResourceConsumptionMetricsTest should not depend on system clock
Diffstat (limited to 'src/mongo/db/stats')
-rw-r--r-- | src/mongo/db/stats/resource_consumption_metrics_test.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mongo/db/stats/resource_consumption_metrics_test.cpp b/src/mongo/db/stats/resource_consumption_metrics_test.cpp index 3b14309fd08..4598e411b71 100644 --- a/src/mongo/db/stats/resource_consumption_metrics_test.cpp +++ b/src/mongo/db/stats/resource_consumption_metrics_test.cpp @@ -601,9 +601,15 @@ TEST_F(ResourceConsumptionMetricsTest, CpuNanos) { // Helper to busy wait. auto spinFor = [&](Milliseconds millis) { - auto deadline = Date_t::now().toDurationSinceEpoch() + millis; - while (Date_t::now().toDurationSinceEpoch() < deadline) { + AtomicWord<bool> mayJoin{false}; + stdx::thread blocker([&] { + sleepFor(millis); + mayJoin.store(true); + }); + while (!mayJoin.load()) { + // Busy wait for the blocker thread. } + blocker.join(); }; { |