diff options
author | Thiago Macieira <thiago.macieira@nokia.com> | 2009-10-07 10:04:44 (GMT) |
---|---|---|
committer | Thiago Macieira <thiago.macieira@nokia.com> | 2009-10-07 10:04:44 (GMT) |
commit | bb13e2d43c664359aa61fc39c31f75a5c3fb4f5e (patch) | |
tree | b03759e4b7dda1f388236d2a7014348b7c873f59 /src/dbus | |
parent | fb3e09c620b519eed57488cb229d42ebb793f387 (diff) | |
download | Qt-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.pro | 1 | ||||
-rw-r--r-- | src/dbus/qdbus_symbols_p.h | 3 | ||||
-rw-r--r-- | src/dbus/qdbusintegrator.cpp | 2 | ||||
-rw-r--r-- | src/dbus/qdbusthread.cpp | 149 |
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 |