diff --git a/server/core/server.cc b/server/core/server.cc index 6b7ff6678..43fd5d4e4 100644 --- a/server/core/server.cc +++ b/server/core/server.cc @@ -1550,18 +1550,9 @@ bool server_set_disk_space_threshold(SERVER* server, const char* disk_space_thre return rv; } -namespace -{ -std::mutex ave_write_mutex; -} - void server_add_response_average(SERVER* srv, double ave, int num_samples) { - Server* server = static_cast(srv); - - - std::lock_guard guard(ave_write_mutex); - server->response_time_add(ave, num_samples); + static_cast(srv)->response_time_add(ave, num_samples); } int server_response_time_num_samples(const SERVER* srv) @@ -1589,9 +1580,11 @@ double server_response_time_average(const SERVER* srv) void Server::response_time_add(double ave, int num_samples) { constexpr double drift {1.1}; - int current_max = m_response_time.sample_max(); int new_max {0}; + std::lock_guard guard(m_lock); + int current_max = m_response_time.sample_max(); + // This server handles more samples than EMA max. // Increasing max allows all servers to be fairly compared. if (num_samples >= current_max)