fix polling
Some checks are pending
BlockStorage/repertory/pipeline/head Build queued...

This commit is contained in:
Scott E. Graves 2025-02-15 12:26:45 -06:00
parent f9573142eb
commit 371664ac43

View File

@ -30,6 +30,7 @@
#include "events/types/service_stop_begin.hpp" #include "events/types/service_stop_begin.hpp"
#include "events/types/service_stop_end.hpp" #include "events/types/service_stop_end.hpp"
#include "utils/tasks.hpp" #include "utils/tasks.hpp"
#include <chrono>
namespace repertory { namespace repertory {
polling polling::instance_; polling polling::instance_;
@ -40,11 +41,12 @@ void polling::frequency_thread(
auto last_run = std::chrono::system_clock::time_point::min(); auto last_run = std::chrono::system_clock::time_point::min();
while (not get_stop_requested()) { while (not get_stop_requested()) {
auto elapsed = std::chrono::system_clock::now() - last_run; auto elapsed = std::chrono::duration_cast<std::chrono::seconds>(
std::chrono::system_clock::now() - last_run);
auto max_elapsed = std::chrono::seconds(get_frequency_seconds()); auto max_elapsed = std::chrono::seconds(get_frequency_seconds());
if (std::chrono::duration_cast<std::chrono::seconds>(elapsed) >= if (last_run == std::chrono::system_clock::time_point::min() ||
max_elapsed) { elapsed >= max_elapsed) {
unique_mutex_lock lock(mutex_); unique_mutex_lock lock(mutex_);
auto futures = std::accumulate( auto futures = std::accumulate(
items_.begin(), items_.end(), std::deque<tasks::task_ptr>{}, items_.begin(), items_.end(), std::deque<tasks::task_ptr>{},