diff --git a/bench/adapters/SpdlogAdapter.cpp b/bench/adapters/SpdlogAdapter.cpp index 1902876..9e5393c 100644 --- a/bench/adapters/SpdlogAdapter.cpp +++ b/bench/adapters/SpdlogAdapter.cpp @@ -37,6 +37,7 @@ class SpdlogAdapter::MeasuringSink : public spdlog::sinks::sink { { std::lock_guard lock(m_pending_mx); m_pending.clear(); + m_retired.clear(); } if (m_sink == SinkKind::File) { std::filesystem::create_directories("bench/results"); @@ -82,11 +83,20 @@ class SpdlogAdapter::MeasuringSink : public spdlog::sinks::sink { std::lock_guard lock(m_pending_mx); pending.swap(m_pending); } - for (const auto& entry : pending) { + + std::vector> retired; + retired.reserve(pending.size()); + for (auto& entry : pending) { if (entry.token.active && m_recorder) { m_recorder->complete(entry.token); } + if (entry.payload) { + retired.push_back(std::move(entry.payload)); + } } + m_retired.insert(m_retired.end(), + std::make_move_iterator(retired.begin()), + std::make_move_iterator(retired.end())); } private: @@ -125,6 +135,8 @@ class SpdlogAdapter::MeasuringSink : public spdlog::sinks::sink { LatencyRecorder::Token token; }; std::vector m_pending; + std::vector> m_retired; + std::mutex m_pending_mx; }; diff --git a/bench/logit_bench.cpp b/bench/logit_bench.cpp index bcccd99..ae48803 100644 --- a/bench/logit_bench.cpp +++ b/bench/logit_bench.cpp @@ -280,7 +280,6 @@ ScenarioResult execute_scenario( recorder->wait_for_all(); const auto sum = recorder->finalize(); - double thr = 0.0; if (dur.count() > 0) { const double sec = static_cast(dur.count()) / 1'000'000'000.0;