struct DBusThreadFunctions |
Functions that must be implemented to make the D-Bus library thread-aware. The recursive mutex functions should be specified rather than the old, deprecated nonrecursive ones.
The condition variable functions have to work with recursive mutexes if you provide those, or with nonrecursive mutexes if you provide those.
If implementing threads using pthreads, be aware that PTHREAD_MUTEX_RECURSIVE is broken in combination with condition variables. libdbus relies on the Java-style behavior that when waiting on a condition, the recursion count is saved and restored, and the mutex is completely unlocked, not just decremented one level of recursion.
Thus with pthreads you probably have to roll your own emulated recursive mutexes, you can't use PTHREAD_MUTEX_RECURSIVE. This is what dbus_threads_init_default() does on platforms that use pthreads.
DBusCondVarFreeFunction | condvar_free |
Function to free a condition variable
DBusCondVarNewFunction | condvar_new |
Function to create a condition variable
DBusCondVarWaitFunction | condvar_wait |
Function to wait on a condition
DBusCondVarWaitTimeoutFunction | condvar_wait_timeout |
Function to wait on a condition with a timeout
DBusCondVarWakeAllFunction | condvar_wake_all |
Function to wake all threads waiting on the condition
DBusCondVarWakeOneFunction | condvar_wake_one |
Function to wake one thread waiting on the condition
DBusMutexFreeFunction | mutex_free |
Function to free a mutex; optional and deprecated.
DBusMutexLockFunction | mutex_lock |
Function to lock a mutex; optional and deprecated.
DBusMutexNewFunction | mutex_new |
Function to create a mutex; optional and deprecated.
DBusMutexUnlockFunction | mutex_unlock |
Function to unlock a mutex; optional and deprecated.
DBusRecursiveMutexFreeFunction | recursive_mutex_free |
Function to free a recursive mutex
DBusRecursiveMutexLockFunction | recursive_mutex_lock |
Function to lock a recursive mutex
DBusRecursiveMutexNewFunction | recursive_mutex_new |
Function to create a recursive mutex
DBusRecursiveMutexUnlockFunction | recursive_mutex_unlock |
Function to unlock a recursive mutex
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.