From 49f76775f411b1b562d5f8ca7c9147b2f33f23aa Mon Sep 17 00:00:00 2001 From: martinrotter Date: Mon, 24 Apr 2017 06:38:14 +0200 Subject: [PATCH] Save cached data before feed update too. --- src/services/abstract/feed.cpp | 3 +++ src/services/owncloud/owncloudserviceroot.cpp | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/services/abstract/feed.cpp b/src/services/abstract/feed.cpp index a5d110c04..6e0f35ea5 100755 --- a/src/services/abstract/feed.cpp +++ b/src/services/abstract/feed.cpp @@ -160,6 +160,9 @@ void Feed::run() { << customId() << " in thread: \'" << QThread::currentThreadId() << "\'."; + // Save all cached data first. + getParentServiceRoot()->saveAllCachedData(); + bool error_during_obtaining; QList msgs = obtainNewMessages(&error_during_obtaining); diff --git a/src/services/owncloud/owncloudserviceroot.cpp b/src/services/owncloud/owncloudserviceroot.cpp index 5d5159924..68c0654e5 100755 --- a/src/services/owncloud/owncloudserviceroot.cpp +++ b/src/services/owncloud/owncloudserviceroot.cpp @@ -135,13 +135,14 @@ void OwnCloudServiceRoot::addMessageStatesToCache(const QStringList &ids_of_mess } void OwnCloudServiceRoot::saveAllCachedData() { + m_cacheSaveMutex->lock(); + if (m_cachedStatesRead.isEmpty() && m_cachedStatesImportant.isEmpty()) { // No cached changes. + m_cacheSaveMutex->unlock(); return; } - m_cacheSaveMutex->lock(); - // Make copy of changes. QMap cached_data_read = m_cachedStatesRead; cached_data_read.detach();