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_end.hpp"
#include "utils/tasks.hpp"
#include <chrono>
namespace repertory {
polling polling::instance_;
@ -40,11 +41,12 @@ void polling::frequency_thread(
auto last_run = std::chrono::system_clock::time_point::min();
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());
if (std::chrono::duration_cast<std::chrono::seconds>(elapsed) >=
max_elapsed) {
if (last_run == std::chrono::system_clock::time_point::min() ||
elapsed >= max_elapsed) {
unique_mutex_lock lock(mutex_);
auto futures = std::accumulate(
items_.begin(), items_.end(), std::deque<tasks::task_ptr>{},