summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ingestor.cpp8
-rw-r--r--test/test-ingest.cpp2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/ingestor.cpp b/src/ingestor.cpp
index 2c59866..e2c6f02 100644
--- a/src/ingestor.cpp
+++ b/src/ingestor.cpp
@@ -281,7 +281,9 @@ namespace WebStat {
withCurlLock(&Ingestor::handleCurlOperations, this);
}
finishAllJobs();
- std::invoke(storeQueueLines.impl, this)();
+ storeQueueLines.currentRun.reset();
+ beginIngestQueuedLogLines();
+ storeQueueLines.currentRun.reset();
std::ignore = parkLogLines(queuedLines);
std::ignore = parkLogLines(processingLines);
withCurlLock([this]() {
@@ -300,7 +302,7 @@ namespace WebStat {
Ingestor::beginIngestQueuedLogLines()
{
if (storeQueueLines.currentRun) {
- if (!storeQueueLines.currentRun->valid()) {
+ if (storeQueueLines.currentRun->wait_for(std::chrono::seconds {}) != std::future_status::ready) {
return {*storeQueueLines.currentRun, false};
}
finalizeJob(storeQueueLines, {}, Job::LastRunTime::clock::now());
@@ -447,7 +449,7 @@ namespace WebStat {
{
auto runJobAsNeeded = [this, now = Job::LastRunTime::clock::now()](Job & job, auto freq) {
if (job.currentRun) {
- if (job.currentRun->valid()) {
+ if (job.currentRun->wait_for(std::chrono::seconds {}) == std::future_status::ready) {
finalizeJob(job, freq, now);
}
}
diff --git a/test/test-ingest.cpp b/test/test-ingest.cpp
index 60338a2..0dad6e6 100644
--- a/test/test-ingest.cpp
+++ b/test/test-ingest.cpp
@@ -272,7 +272,7 @@ BOOST_AUTO_TEST_CASE(StoreLog, *boost::unit_test::depends_on("I/StoreLogLine"))
WebStat::LogFile log {"/tmp/store-log-fixture.log", 10};
WebStat::FilePtr input {fopen(log.path.c_str(), "r")};
BOOST_REQUIRE(input);
- ingestLog(input.get());
+ BOOST_CHECK_NO_THROW(ingestLog(input.get()));
BOOST_CHECK_EQUAL(stats.linesRead, 10);
BOOST_CHECK_EQUAL(stats.linesParsed, 10);
BOOST_CHECK_EQUAL(stats.linesParseFailed, 0);