From 729b8d4a9b7df770315b190ba213d7389159e6c2 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Thu, 25 Aug 2016 10:54:37 +0200 Subject: [PATCH] Fix some deadlocks when exiting app while updating feeds etc. --- src/core/feeddownloader.cpp | 2 -- src/miscellaneous/feedreader.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 2 deletions(-) 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();