diff --git a/include/Profiling.h b/include/Profiling.h index 7b57fe6..72b0a99 100644 --- a/include/Profiling.h +++ b/include/Profiling.h @@ -1,10 +1,10 @@ #pragma once -#include #include #include #include #include +#include namespace prof { @@ -38,9 +38,10 @@ struct UnitExecutionTime { Stats stats() const; /// Returns the number of elements the moving average is calculated over. - size_t measurement_count() const { return m_total_calls; } + size_t measurement_count() const; private: + std::mutex m_mtx {}; size_t m_total_calls {}; double m_sum {}; // sum of measurements squared (for running stdev) diff --git a/src/Profiling.cpp b/src/Profiling.cpp index 2e840c4..f6a41d8 100644 --- a/src/Profiling.cpp +++ b/src/Profiling.cpp @@ -20,6 +20,7 @@ void prof::UnitProfileCollection::add_sample(const std::string& unit, const Dura } prof::Stats prof::UnitExecutionTime::stats() const { + std::unique_lock lock(m_mtx); Stats result {}; // calculate sum result.n = m_total_calls; @@ -33,6 +34,7 @@ prof::Stats prof::UnitExecutionTime::stats() const { } void prof::UnitExecutionTime::add_sample(const Duration& dur) { + std::unique_lock lock(m_mtx); m_sum += dur.count(); m_measurement_sqr_sum += dur.count() * dur.count(); m_min = std::min(dur.count(), m_min); @@ -51,3 +53,8 @@ std::unordered_map prof::UnitProfileCollection::all_st } return result; } +size_t prof::UnitExecutionTime::measurement_count() const { + std::unique_lock lock(m_mtx); + return m_total_calls; +} + diff --git a/src/main.cpp b/src/main.cpp index 1b8bf8b..028ea3b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,7 +20,6 @@ #include "Common.h" #include "Http.h" #include "LuaAPI.h" -#include "Profiling.h" #include "SignalHandling.h" #include "TConfig.h" #include "THeartbeatThread.h" @@ -31,7 +30,6 @@ #include "TResourceManager.h" #include "TServer.h" -#include #include #include diff --git a/vcpkg.json b/vcpkg.json index 3bd6b9e..85b9cb2 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -6,7 +6,6 @@ "boost-spirit", "boost-uuid", "boost-variant", - "boost-circular-buffer", "cpp-httplib", "doctest", "fmt",