From 2b7aecce4eb0e9db82e2b56df9b4df6df65ca9d1 Mon Sep 17 00:00:00 2001 From: emeric Date: Mon, 29 Apr 2024 13:44:20 +0200 Subject: [PATCH] Fixed bad optional access, fixes #450 --- .../services/scanner/impl/ScannerService.cpp | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/libs/services/scanner/impl/ScannerService.cpp b/src/libs/services/scanner/impl/ScannerService.cpp index b4ff7db2..d899f709 100644 --- a/src/libs/services/scanner/impl/ScannerService.cpp +++ b/src/libs/services/scanner/impl/ScannerService.cpp @@ -295,18 +295,19 @@ namespace lms::scanner LMS_LOG(DBUPDATER, DEBUG, "Completed scan step '" << scanStep->getStepName() << "'"); } + { + std::unique_lock lock{ _statusMutex }; + + _curState = State::NotScheduled; + _currentScanStepStats.reset(); // must be sync with _curState + } + LMS_LOG(DBUPDATER, INFO, "Scan " << (_abortScan ? "aborted" : "complete") << ". Changes = " << stats.nbChanges() << " (added = " << stats.additions << ", removed = " << stats.deletions << ", updated = " << stats.updates << "), Not changed = " << stats.skips << ", Scanned = " << stats.scans << " (errors = " << stats.errors.size() << "), features fetched = " << stats.featuresFetched << ", duplicates = " << stats.duplicates.size()); if (!_abortScan) { stats.stopTime = Wt::WDateTime::currentDateTime(); - { - std::unique_lock lock{ _statusMutex }; - - _lastCompleteScanStats = stats; - _currentScanStepStats.reset(); - } - + LMS_LOG(DBUPDATER, DEBUG, "Scan not aborted, scheduling next scan!"); scheduleNextScan(); @@ -315,11 +316,6 @@ namespace lms::scanner else { LMS_LOG(DBUPDATER, DEBUG, "Scan aborted, not scheduling next scan!"); - - std::unique_lock lock{ _statusMutex }; - - _curState = State::NotScheduled; - _currentScanStepStats.reset(); } }