diff --git a/src/core/feeddownloader.cpp b/src/core/feeddownloader.cpp index 340461816..b0ad83307 100755 --- a/src/core/feeddownloader.cpp +++ b/src/core/feeddownloader.cpp @@ -44,8 +44,6 @@ FeedDownloader::~FeedDownloader() { } bool FeedDownloader::isUpdateRunning() const { - QMutexLocker locker(m_mutex); - return !m_feeds.isEmpty() || m_feedsUpdating > 0; } diff --git a/src/miscellaneous/feedreader.cpp b/src/miscellaneous/feedreader.cpp index 91e063af9..fefaf1c33 100755 --- a/src/miscellaneous/feedreader.cpp +++ b/src/miscellaneous/feedreader.cpp @@ -207,6 +207,12 @@ void FeedReader::stop() { if (m_feedDownloaderThread != nullptr && m_feedDownloaderThread->isRunning()) { m_feedDownloader->stopRunningUpdate(); + if (m_feedDownloader->isUpdateRunning()) { + QEventLoop loop(this); + connect(m_feedDownloader, &FeedDownloader::updateFinished, &loop, &QEventLoop::quit); + loop.exec(); + } + qDebug("Quitting feed downloader thread."); m_feedDownloaderThread->quit();