summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusconnection.cpp
diff options
context:
space:
mode:
authorIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-08-15 14:58:49 +0200
committerIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2023-08-22 16:26:02 +0200
commit12a0eee1f8e304669fef3836ac2014b287f9babe (patch)
tree69d5872a6d997f1d8d690052670e3c016afe07a0 /src/dbus/qdbusconnection.cpp
parent3c4a092cf7a542530bbccaca133763bde00bd335 (diff)
QDBusConnectionManager: Move all locking inside the class
Make `mutex` member private and make all former users call new public member functions that perform locking. Make old non-locking member functions private. Change-Id: I29092d1bd785aa6b830183c1c1fe125b16e0d633 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus/qdbusconnection.cpp')
-rw-r--r--src/dbus/qdbusconnection.cpp26
1 files changed, 7 insertions, 19 deletions
diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index f0e38dcbd4..bd9df89aaa 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -7,7 +7,6 @@
#include <qdebug.h>
#include <qstringlist.h>
-#include <QtCore/private/qlocking_p.h>
#include "qdbusconnectioninterface.h"
#include "qdbuserror.h"
@@ -161,10 +160,7 @@ QDBusConnection::QDBusConnection(const QString &name)
if (!manager) {
d = nullptr;
} else {
- const auto locker = qt_scoped_lock(manager->mutex);
- d = manager->connection(name);
- if (d)
- d->ref.ref();
+ d = manager->existingConnection(name);
}
}
@@ -276,14 +272,10 @@ QDBusConnection QDBusConnection::connectToPeer(const QString &address,
void QDBusConnection::disconnectFromBus(const QString &name)
{
auto *manager = QDBusConnectionManager::instance();
+ if (!manager)
+ return;
- if (manager) {
- const auto locker = qt_scoped_lock(manager->mutex);
- QDBusConnectionPrivate *d = manager->connection(name);
- if (d && d->mode != QDBusConnectionPrivate::ClientMode)
- return;
- manager->removeConnection(name);
- }
+ manager->disconnectFrom(name, QDBusConnectionPrivate::ClientMode);
}
/*!
@@ -299,14 +291,10 @@ void QDBusConnection::disconnectFromBus(const QString &name)
void QDBusConnection::disconnectFromPeer(const QString &name)
{
auto *manager = QDBusConnectionManager::instance();
+ if (!manager)
+ return;
- if (manager) {
- const auto locker = qt_scoped_lock(manager->mutex);
- QDBusConnectionPrivate *d = manager->connection(name);
- if (d && d->mode != QDBusConnectionPrivate::PeerMode)
- return;
- manager->removeConnection(name);
- }
+ manager->disconnectFrom(name, QDBusConnectionPrivate::PeerMode);
}
/*!