diff options
| -rw-r--r-- | src/ingestor.cpp | 8 | ||||
| -rw-r--r-- | test/test-ingest.cpp | 2 |
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); |
