From ea01d7784ad3ab34061f43aa51ee91ce2339e003 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 14 Apr 2015 17:09:02 -0700 Subject: And move the creation of connections to the thread Now we know that all timers and socket notifiers get created only in the QDBusConnectionManager thread. Incidentally, this reduced code duplication. Change-Id: I27eaacb532114dd188c4ffff13d5075a8d2efb0b Reviewed-by: Alex Blasche --- src/dbus/qdbusserver.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'src/dbus/qdbusserver.cpp') diff --git a/src/dbus/qdbusserver.cpp b/src/dbus/qdbusserver.cpp index a0b2c8283c..6c1b4c10ef 100644 --- a/src/dbus/qdbusserver.cpp +++ b/src/dbus/qdbusserver.cpp @@ -63,14 +63,10 @@ QDBusServer::QDBusServer(const QString &address, QObject *parent) d = 0; return; } - d = new QDBusConnectionPrivate; + emit QDBusConnectionManager::instance()->serverRequested(address, this); QObject::connect(d, SIGNAL(newServerConnection(QDBusConnectionPrivate*)), this, SLOT(_q_newConnection(QDBusConnectionPrivate*)), Qt::QueuedConnection); - - QDBusErrorInternal error; - d->setServer(this, q_dbus_server_listen(address.toUtf8().constData(), error), error); - d->moveToThread(QDBusConnectionManager::instance()); } /*! @@ -83,23 +79,19 @@ QDBusServer::QDBusServer(QObject *parent) { #ifdef Q_OS_UNIX // Use Unix sockets on Unix systems only - static const char address[] = "unix:tmpdir=/tmp"; + const QString address = QStringLiteral("unix:tmpdir=/tmp"); #else - static const char address[] = "tcp:"; + const QString address = QStringLiteral("tcp:"); #endif if (!qdbus_loadLibDBus()) { d = 0; return; } - d = new QDBusConnectionPrivate; + emit QDBusConnectionManager::instance()->serverRequested(address, this); QObject::connect(d, SIGNAL(newServerConnection(QDBusConnectionPrivate*)), this, SLOT(_q_newConnection(QDBusConnectionPrivate*)), Qt::QueuedConnection); - - QDBusErrorInternal error; - d->setServer(this, q_dbus_server_listen(address, error), error); - d->moveToThread(QDBusConnectionManager::instance()); } /*! -- cgit v1.2.3