diff options
| author | Pekka Vuorela <pvuorela@iki.fi> | 2025-11-20 11:19:18 +0200 |
|---|---|---|
| committer | Pekka Vuorela <pvuorela@iki.fi> | 2025-11-20 19:42:17 +0200 |
| commit | 95f5a96ca76a8d70b611b750bc4ae606ad2c182a (patch) | |
| tree | b4fd5e1c2d73121ac94d576c8deec409e22641bd | |
| parent | 23d83bf411ef208140588afe86dedded8802608f (diff) | |
Simplify sql store mutex guard
No template use for this, it's always ProcessMutex.
Always also locked just after created so made the ctor do that.
Change-Id: Ic6531b08762256d397c954982ca8c65409cce4ee
Reviewed-by: Damien Caliste <dcaliste@free.fr>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
Reviewed-by: <matti.viljanen@kapsi.fi>
| -rw-r--r-- | src/libraries/qmfclient/qmailstoresql_p.cpp | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/src/libraries/qmfclient/qmailstoresql_p.cpp b/src/libraries/qmfclient/qmailstoresql_p.cpp index e27bb82e..8e79d0e1 100644 --- a/src/libraries/qmfclient/qmailstoresql_p.cpp +++ b/src/libraries/qmfclient/qmailstoresql_p.cpp @@ -191,22 +191,21 @@ const int Sqlite3ConstraintErrorNumber = 19; const uint pid = static_cast<uint>(QCoreApplication::applicationPid() & 0xffffffff); -// Helper class for automatic unlocking -template<typename Mutex> -class Guard +// Helper class for automatic locking +class MutexGuard { - Mutex &mutex; + ProcessMutex &mutex; bool locked; public: - - Guard(Mutex& m) + MutexGuard(ProcessMutex& m) : mutex(m), locked(false) { + lock(); } - ~Guard() + ~MutexGuard() { unlock(); } @@ -228,8 +227,6 @@ public: } }; -typedef Guard<ProcessMutex> MutexGuard; - QString escape(const QString &original, const QChar &escapee, const QChar &escaper = QChar::fromLatin1('\\')) { QString result(original); @@ -1224,7 +1221,7 @@ public: QVariantList parentFolderId() const { return idValues<QMailFolderKey>(); } - QVariantList ancestorFolderIds() const { return idValues<QMailFolderKey>(); } + QVariantList ancestorFolderIds() const { return idValues<QMailFolderKey>(); } QVariantList sender() const { return stringValues(); } @@ -1594,7 +1591,7 @@ public: QVariantList parentFolderId() const { return idValues<QMailFolderKey>(); } - QVariantList ancestorFolderIds() const { return idValues<QMailFolderKey>(); } + QVariantList ancestorFolderIds() const { return idValues<QMailFolderKey>(); } QVariantList parentAccountId() const { return idValues<QMailAccountKey>(); } @@ -2695,7 +2692,6 @@ QMailStoreSql::QMailStoreSql(bool withAccountTables) { ProcessMutex creationMutex(QDir::rootPath()); MutexGuard guard(creationMutex); - guard.lock(); mutex = new ProcessMutex(databaseIdentifier(), 1); if (contentMutex == 0) { @@ -2728,7 +2724,6 @@ bool QMailStoreSql::initStore(const QString &localFolderName) { ProcessMutex creationMutex(QDir::rootPath()); MutexGuard guard(creationMutex); - guard.lock(); // Enforce the error code to be this if we can't init: errorCode = QMailStore::StorageInaccessible; @@ -3575,7 +3570,6 @@ QMailMessage QMailStoreSql::extractMessage(const QSqlRecord& r, const QMap<QStri QPair<QString, QString> elements(extractUriElements(contentUri)); MutexGuard lock(contentManagerMutex()); - lock.lock(); QMailContentManager *contentManager = QMailContentManagerFactory::create(elements.first); if (contentManager) { @@ -5391,7 +5385,6 @@ void QMailStoreSql::removeExpiredData(const QStringList& contentUris) { { MutexGuard lock(contentManagerMutex()); - lock.lock(); QMap<QString, QStringList> uriElements; @@ -5951,7 +5944,6 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptAddMessage(QMailMessage *mess } MutexGuard lock(contentManagerMutex()); - lock.lock(); ReferenceStorer refStorer(message); const_cast<const QMailMessage*>(message)->foreachPart<ReferenceStorer&>(refStorer); @@ -6815,7 +6807,6 @@ QMailStoreSql::AttemptResult QMailStoreSql::attemptUpdateMessage(QMailMessageMet } MutexGuard lock(contentManagerMutex()); - lock.lock(); QStringList schemes(QStringList() << QMailContentManagerFactory::defaultFilterScheme() << metaData->contentScheme() |
