Fix some deadlocks when exiting app while updating feeds etc.

This commit is contained in:
Martin Rotter 2016-08-25 10:54:37 +02:00
parent 13bb985dd2
commit 729b8d4a9b
2 changed files with 6 additions and 2 deletions

View File

@ -44,8 +44,6 @@ FeedDownloader::~FeedDownloader() {
}
bool FeedDownloader::isUpdateRunning() const {
QMutexLocker locker(m_mutex);
return !m_feeds.isEmpty() || m_feedsUpdating > 0;
}

View File

@ -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();