Skip to content

Commit

Permalink
Performance: reduce unnecessary mutex locks
Browse files Browse the repository at this point in the history
If we are already within a transaction, then we have acquired the
mutex lock already.
  • Loading branch information
Chris Adams committed Sep 18, 2020
1 parent 12ce0ce commit ed35e43
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions src/engine/contactwriter.cpp
Expand Up @@ -308,7 +308,7 @@ static QContactManager::Error bindRelationships(
QContactManager::Error ContactWriter::save(
const QList<QContactRelationship> &relationships, QMap<int, QContactManager::Error> *errorMap, bool withinTransaction, bool withinAggregateUpdate)
{
QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

if (relationships.isEmpty())
return QContactManager::NoError;
Expand Down Expand Up @@ -479,7 +479,7 @@ QContactManager::Error ContactWriter::saveRelationships(
QContactManager::Error ContactWriter::remove(
const QList<QContactRelationship> &relationships, QMap<int, QContactManager::Error> *errorMap, bool withinTransaction)
{
QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

if (relationships.isEmpty())
return QContactManager::NoError;
Expand Down Expand Up @@ -644,7 +644,7 @@ QContactManager::Error ContactWriter::save(
{
Q_UNUSED(withinSyncUpdate) // TODO

QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

if (!withinTransaction && !beginTransaction()) {
// if we are not already within a transaction, create a transaction.
Expand Down Expand Up @@ -766,7 +766,7 @@ QContactManager::Error ContactWriter::remove(
bool withinTransaction,
bool withinSyncUpdate)
{
QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

if (!withinTransaction && !beginTransaction()) {
// if we are not already within a transaction, create a transaction.
Expand Down Expand Up @@ -941,7 +941,7 @@ QContactManager::Error ContactWriter::deleteContacts(const QVariantList &ids, bo

QContactManager::Error ContactWriter::remove(const QList<QContactId> &contactIds, QMap<int, QContactManager::Error> *errorMap, bool withinTransaction, bool withinSyncUpdate)
{
QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

if (contactIds.isEmpty())
return QContactManager::NoError;
Expand Down Expand Up @@ -1350,7 +1350,7 @@ QVariant detailValue(const T &detail, F field)
*/
QContactManager::Error ContactWriter::clearChangeFlags(const QList<QContactId> &contactIds, bool withinTransaction)
{
QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

QVariantList boundIds;
for (const QContactId &id : contactIds) {
Expand Down Expand Up @@ -1431,7 +1431,7 @@ QContactManager::Error ContactWriter::clearChangeFlags(const QList<QContactId> &
*/
QContactManager::Error ContactWriter::clearChangeFlags(const QContactCollectionId &collectionId, bool withinTransaction)
{
QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

if (!withinTransaction && !beginTransaction()) {
QTCONTACTS_SQLITE_WARNING(QString::fromLatin1("Unable to begin database transaction while clearing collection change flags"));
Expand Down Expand Up @@ -3442,7 +3442,7 @@ QContactManager::Error ContactWriter::save(
bool withinAggregateUpdate,
bool withinSyncUpdate)
{
QMutexLocker locker(m_database.accessMutex());
QMutexLocker locker(withinTransaction ? nullptr : m_database.accessMutex());

if (contacts->isEmpty())
return QContactManager::NoError;
Expand Down

0 comments on commit ed35e43

Please sign in to comment.