diff --git a/src/libs/services/recommendation/impl/RecommendationService.cpp b/src/libs/services/recommendation/impl/RecommendationService.cpp index 76e4e693..67445959 100644 --- a/src/libs/services/recommendation/impl/RecommendationService.cpp +++ b/src/libs/services/recommendation/impl/RecommendationService.cpp @@ -223,13 +223,14 @@ namespace Recommendation engine->load(forceReload, progressCallback ? progress : ProgressCallback {}); - { - std::scoped_lock lock {_controlMutex}; - _pendingEngines.erase(std::find(std::begin(_pendingEngines), std::end(_pendingEngines), engine.get())); - } LMS_LOG(RECOMMENDATION, INFO) << "Initializing engine '" << engineTypeToString(engineType) << "': " << (_loadCancelled ? "aborted" : "complete"); } + { + std::scoped_lock lock {_controlMutex}; + _pendingEngines.erase(std::find(std::begin(_pendingEngines), std::end(_pendingEngines), engine.get())); + } + if (!_loadCancelled) { std::unique_lock lock {_enginesMutex}; @@ -250,7 +251,9 @@ namespace Recommendation LMS_LOG(RECOMMENDATION, DEBUG) << "Still " << _pendingEngines.size() << " pending engines!"; for (IEngine* engine : _pendingEngines) + { engine->requestCancelLoad(); + } _pendingEnginesCondvar.wait(controlLock, [this] {return _pendingEngines.empty();}); _loadCancelled = false; diff --git a/src/libs/services/scanner/impl/ScannerService.cpp b/src/libs/services/scanner/impl/ScannerService.cpp index d00c97ff..abac1180 100644 --- a/src/libs/services/scanner/impl/ScannerService.cpp +++ b/src/libs/services/scanner/impl/ScannerService.cpp @@ -270,8 +270,9 @@ ScannerService::ScannerService(Db& db, Recommendation::IRecommendationService& r ScannerService::~ScannerService() { - LMS_LOG(DBUPDATER, INFO) << "Shutting down Scanner..."; + LMS_LOG(DBUPDATER, INFO) << "Stopping service..."; stop(); + LMS_LOG(DBUPDATER, INFO) << "Service stopped!"; } void