#include <dbus-threads.h>
Data Fields | |
unsigned int | mask |
Mask indicating which functions are present. | |
DBusMutexNewFunction | mutex_new |
Function to create a mutex; optional and deprecated. | |
DBusMutexFreeFunction | mutex_free |
Function to free a mutex; optional and deprecated. | |
DBusMutexLockFunction | mutex_lock |
Function to lock a mutex; optional and deprecated. | |
DBusMutexUnlockFunction | mutex_unlock |
Function to unlock a mutex; optional and deprecated. | |
DBusCondVarNewFunction | condvar_new |
Function to create a condition variable. | |
DBusCondVarFreeFunction | condvar_free |
Function to free 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. | |
DBusCondVarWakeOneFunction | condvar_wake_one |
Function to wake one thread waiting on the condition. | |
DBusCondVarWakeAllFunction | condvar_wake_all |
Function to wake all threads waiting on the condition. | |
DBusRecursiveMutexNewFunction | recursive_mutex_new |
Function to create a recursive mutex. | |
DBusRecursiveMutexFreeFunction | recursive_mutex_free |
Function to free a recursive mutex. | |
DBusRecursiveMutexLockFunction | recursive_mutex_lock |
Function to lock a recursive mutex. | |
DBusRecursiveMutexUnlockFunction | recursive_mutex_unlock |
Function to unlock a recursive mutex. | |
void(* | padding1 )(void) |
Reserved for future expansion. | |
void(* | padding2 )(void) |
Reserved for future expansion. | |
void(* | padding3 )(void) |
Reserved for future expansion. | |
void(* | padding4 )(void) |
Reserved for future expansion. |
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.
Definition at line 161 of file dbus-threads.h.
unsigned int DBusThreadFunctions::mask |
Mask indicating which functions are present.
Definition at line 163 of file dbus-threads.h.
Referenced by dbus_threads_init().
Function to create a mutex; optional and deprecated.
Definition at line 165 of file dbus-threads.h.
Referenced by _dbus_mutex_new(), and dbus_threads_init().
Function to free a mutex; optional and deprecated.
Definition at line 166 of file dbus-threads.h.
Referenced by _dbus_mutex_free(), and dbus_threads_init().
Function to lock a mutex; optional and deprecated.
Definition at line 167 of file dbus-threads.h.
Referenced by _dbus_mutex_lock(), and dbus_threads_init().
Function to unlock a mutex; optional and deprecated.
Definition at line 168 of file dbus-threads.h.
Referenced by _dbus_mutex_unlock(), and dbus_threads_init().