summaryrefslogtreecommitdiff
path: root/src/ingestor.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan.goodliffe@octal.co.uk>2026-05-01 15:31:02 +0100
committerDan Goodliffe <dan.goodliffe@octal.co.uk>2026-05-01 15:31:02 +0100
commited3598ac6f77f62b0c4fe32d4dab05784e5fa51d (patch)
tree6d535ab4228d8804cee2b3e11b69634988e33447 /src/ingestor.cpp
parent917487a6de80bf5e81eebcdbbf48bcf9763262fa (diff)
downloadwebstat-ed3598ac6f77f62b0c4fe32d4dab05784e5fa51d.tar.bz2
webstat-ed3598ac6f77f62b0c4fe32d4dab05784e5fa51d.tar.xz
webstat-ed3598ac6f77f62b0c4fe32d4dab05784e5fa51d.zip
Return a callable from jobs
Allows safely running finalisation code in the main thread if required.
Diffstat (limited to 'src/ingestor.cpp')
-rw-r--r--src/ingestor.cpp14
1 files changed, 9 insertions, 5 deletions
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