summaryrefslogtreecommitdiffstats
path: root/src/dbus
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2009-10-07 10:04:44 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2009-10-07 10:04:44 (GMT)
commitbb13e2d43c664359aa61fc39c31f75a5c3fb4f5e (patch)
treeb03759e4b7dda1f388236d2a7014348b7c873f59 /src/dbus
parentfb3e09c620b519eed57488cb229d42ebb793f387 (diff)
downloadQt-bb13e2d43c664359aa61fc39c31f75a5c3fb4f5e.zip
Qt-bb13e2d43c664359aa61fc39c31f75a5c3fb4f5e.tar.gz
Qt-bb13e2d43c664359aa61fc39c31f75a5c3fb4f5e.tar.bz2
Use dbus_threads_init_default instead of QMutex wrappers
The minimum version for the recursive mutexes is D-Bus 0.93. That's also the same version that introduced the default thread functions. So we don't need to provide ours anymore, just use the default.
Diffstat (limited to 'src/dbus')
-rw-r--r--src/dbus/dbus.pro1
-rw-r--r--src/dbus/qdbus_symbols_p.h3
-rw-r--r--src/dbus/qdbusintegrator.cpp2
-rw-r--r--src/dbus/qdbusthread.cpp149
4 files changed, 4 insertions, 151 deletions
diff --git a/src/dbus/dbus.pro b/src/dbus/dbus.pro
index dcd8418..57c6a58 100644
--- a/src/dbus/dbus.pro
+++ b/src/dbus/dbus.pro
@@ -61,7 +61,6 @@ SOURCES += qdbusconnection.cpp \
qdbusutil.cpp \
qdbusintrospection.cpp \
qdbusabstractadaptor.cpp \
- qdbusthread.cpp \
qdbusinternalfilters.cpp \
qdbusmetaobject.cpp \
qdbusxmlgenerator.cpp \
diff --git a/src/dbus/qdbus_symbols_p.h b/src/dbus/qdbus_symbols_p.h
index bc90328..69c6ee4 100644
--- a/src/dbus/qdbus_symbols_p.h
+++ b/src/dbus/qdbus_symbols_p.h
@@ -357,6 +357,9 @@ DEFINEFUNC(dbus_bool_t , dbus_type_is_basic, (int typecode),
DEFINEFUNC(dbus_bool_t , dbus_type_is_fixed, (int typecode),
(typecode), return)
+/* dbus-thread.h */
+DEFINEFUNC(dbus_bool_t , dbus_threads_init_default, (), (), return)
+
QT_END_NAMESPACE
#endif
diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
index 6ff50ac..8143cba 100644
--- a/src/dbus/qdbusintegrator.cpp
+++ b/src/dbus/qdbusintegrator.cpp
@@ -920,7 +920,7 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p)
watchAndTimeoutLock(QMutex::Recursive),
rootNode(QString(QLatin1Char('/')))
{
- static const bool threads = qDBusInitThreads();
+ static const bool threads = q_dbus_threads_init_default();
static const int debugging = ::isDebugging = qgetenv("QDBUS_DEBUG").toInt();
Q_UNUSED(threads)
diff --git a/src/dbus/qdbusthread.cpp b/src/dbus/qdbusthread.cpp
deleted file mode 100644
index 7bc107a..0000000
--- a/src/dbus/qdbusthread.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtDBus module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore/qmutex.h>
-#include <QtCore/qwaitcondition.h>
-
-#include <stdlib.h>
-#include <qdbus_symbols_p.h>
-
-QT_USE_NAMESPACE
-
-static DBusMutex* recursive_mutex_new()
-{
- return reinterpret_cast<DBusMutex *>(new QMutex(QMutex::Recursive));
-}
-
-static void mutex_free(DBusMutex *mutex)
-{
- delete reinterpret_cast<QMutex *>(mutex);
-}
-
-static void mutex_lock(DBusMutex *mutex)
-{
- reinterpret_cast<QMutex *>(mutex)->lock();
-}
-
-static void mutex_unlock(DBusMutex *mutex)
-{
- reinterpret_cast<QMutex *>(mutex)->unlock();
-}
-
-static DBusCondVar* condvar_new()
-{
- return reinterpret_cast<DBusCondVar *>(new QWaitCondition);
-}
-
-static void condvar_free(DBusCondVar *cond)
-{
- delete reinterpret_cast<QWaitCondition *>(cond);
-}
-
-static void condvar_wait(DBusCondVar *cond, DBusMutex *mutex)
-{
- reinterpret_cast<QWaitCondition *>(cond)->wait(reinterpret_cast<QMutex *>(mutex));
-}
-
-static dbus_bool_t condvar_wait_timeout(DBusCondVar *cond, DBusMutex *mutex, int msec)
-{
- return reinterpret_cast<QWaitCondition *>(cond)->wait(reinterpret_cast<QMutex *>(mutex), msec);
-}
-
-static void condvar_wake_one(DBusCondVar *cond)
-{
- reinterpret_cast<QWaitCondition *>(cond)->wakeOne();
-}
-
-static void condvar_wake_all(DBusCondVar *cond)
-{
- reinterpret_cast<QWaitCondition *>(cond)->wakeAll();
-}
-
-QT_BEGIN_NAMESPACE
-
-bool qDBusInitThreads()
-{
- // Use only the non-recursive mutex functions
- static DBusThreadFunctions fcn = {
- DBUS_THREAD_FUNCTIONS_CONDVAR_NEW_MASK |
- DBUS_THREAD_FUNCTIONS_CONDVAR_FREE_MASK |
- DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_MASK |
- DBUS_THREAD_FUNCTIONS_CONDVAR_WAIT_TIMEOUT_MASK |
- DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ONE_MASK |
- DBUS_THREAD_FUNCTIONS_CONDVAR_WAKE_ALL_MASK |
- DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_NEW_MASK |
- DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_FREE_MASK |
- DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_LOCK_MASK |
- DBUS_THREAD_FUNCTIONS_RECURSIVE_MUTEX_UNLOCK_MASK,
- 0, 0, 0, 0, // non-recursive mutex functions
- condvar_new,
- condvar_free,
- condvar_wait,
- condvar_wait_timeout,
- condvar_wake_one,
- condvar_wake_all,
- recursive_mutex_new,
- mutex_free,
- mutex_lock,
- mutex_unlock,
- 0, 0, 0, 0
- };
-
-#if !defined QT_LINKED_LIBDBUS
- void (*threads_init_default)() = (void (*)())qdbus_resolve_conditionally("dbus_threads_init_default");
- void (*threads_init)(DBusThreadFunctions *) = (void (*)(DBusThreadFunctions*))qdbus_resolve_conditionally("dbus_threads_init");
-
- if (threads_init_default)
- threads_init_default();
- else if (threads_init)
- threads_init(&fcn);
- else
- return false;
-
- return true;
-#else
- dbus_threads_init(&fcn);
-
- return true;
-#endif
-}
-
-QT_END_NAMESPACE