From ed3598ac6f77f62b0c4fe32d4dab05784e5fa51d Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Fri, 1 May 2026 15:31:02 +0100 Subject: Return a callable from jobs Allows safely running finalisation code in the main thread if required. --- src/ingestor.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/ingestor.cpp') diff --git a/src/ingestor.cpp b/src/ingestor.cpp index 73ee239..9159a12 100644 --- a/src/ingestor.cpp +++ b/src/ingestor.cpp @@ -368,7 +368,7 @@ namespace WebStat { Ingestor::finalizeJob(Job & job, const std::chrono::minutes freq, const Job::LastRunTime::clock::time_point now) { try { - job.currentRun->get(); + job.currentRun->get()(); job.lastRun = now; } catch (const std::exception & excp) { @@ -409,7 +409,7 @@ namespace WebStat { finishJob(purgeOldLogs); } - unsigned int + Ingestor::Job::Result Ingestor::jobIngestParkedLines() { unsigned int count = 0; @@ -420,7 +420,9 @@ namespace WebStat { count += 1; } } - return count; + return [count]() { + return count; + }; } void @@ -458,7 +460,7 @@ namespace WebStat { return count; } - unsigned int + Ingestor::Job::Result Ingestor::jobPurgeOldLogs() { auto dbconn = dbpool->get(); @@ -475,7 +477,9 @@ namespace WebStat { } std::this_thread::sleep_for(settings.purgeDeletePause); } - return purgedTotal; + return [purgedTotal]() { + return purgedTotal; + }; } void -- cgit v1.3