summaryrefslogtreecommitdiffstats
path: root/src/dbus/qdbusserver.cpp
diff options
context:
space:
mode:
authorAlberto Mardegan <alberto.mardegan@canonical.com>2016-08-09 17:01:37 +0300
committerTimo Jyrinki <timo.jyrinki@iki.fi>2016-09-06 18:22:58 +0000
commita32217cb551612277d43b3f7c08da85abe3874ac (patch)
tree70fe1c8af0dcc9b42ee0d61a26a53d0e40a48bed /src/dbus/qdbusserver.cpp
parent43a710df639c695f4c87e4857b8e8b045ab3df76 (diff)
QDBusServer: delay processing of D-Bus messages
We must ensure that QDBusServer's newConnection() signal has been processed by the application, before starting processing messages on it. Task-number: QTBUG-55087 Change-Id: I595329b2f98788dbf9f40558b8c230c0c0817ef8 Reviewed-by: Timo Jyrinki <timo.jyrinki@iki.fi> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus/qdbusserver.cpp')
-rw-r--r--src/dbus/qdbusserver.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/dbus/qdbusserver.cpp b/src/dbus/qdbusserver.cpp
index babb270da0..39d08b4e63 100644
--- a/src/dbus/qdbusserver.cpp
+++ b/src/dbus/qdbusserver.cpp
@@ -97,6 +97,7 @@ QDBusServer::QDBusServer(QObject *parent)
*/
QDBusServer::~QDBusServer()
{
+ QWriteLocker locker(&d->lock);
if (QDBusConnectionManager::instance()) {
QMutexLocker locker(&QDBusConnectionManager::instance()->mutex);
Q_FOREACH (const QString &name, d->serverConnectionNames) {
@@ -104,6 +105,7 @@ QDBusServer::~QDBusServer()
}
d->serverConnectionNames.clear();
}
+ d->serverObject = nullptr;
d->ref.store(0);
d->deleteLater();
}