Index: dbus/dbus-threads.c =================================================================== --- dbus/dbus-threads.c (revision 651) +++ dbus/dbus-threads.c (working copy) @@ -139,16 +139,17 @@ * Locks may be recursive if threading implementation initialized * recursive locks. */ -void +dbus_bool_t _dbus_mutex_lock (DBusMutex *mutex) { if (mutex) { if (thread_functions.recursive_mutex_lock) - (* thread_functions.recursive_mutex_lock) (mutex); + return (* thread_functions.recursive_mutex_lock) (mutex); else if (thread_functions.mutex_lock) - (* thread_functions.mutex_lock) (mutex); + return (* thread_functions.mutex_lock) (mutex); } + return TRUE; } /** @@ -156,16 +157,17 @@ * * @returns #TRUE on success */ -void +dbus_bool_t _dbus_mutex_unlock (DBusMutex *mutex) { if (mutex) { if (thread_functions.recursive_mutex_unlock) - (* thread_functions.recursive_mutex_unlock) (mutex); + return (* thread_functions.recursive_mutex_unlock) (mutex); else if (thread_functions.mutex_unlock) - (* thread_functions.mutex_unlock) (mutex); + return (* thread_functions.mutex_unlock) (mutex); } + return TRUE; } /** Index: dbus/dbus-threads.h =================================================================== --- dbus/dbus-threads.h (revision 651) +++ dbus/dbus-threads.h (working copy) @@ -65,11 +65,11 @@ /** Locks a recursively-lockable mutex. Found in #DBusThreadFunctions. * Can only fail due to lack of memory. */ -typedef void (* DBusRecursiveMutexLockFunction) (DBusMutex *mutex); +typedef dbus_bool_t (* DBusRecursiveMutexLockFunction) (DBusMutex *mutex); /** Unlocks a recursively-lockable mutex. Found in #DBusThreadFunctions. * Can only fail due to lack of memory. */ -typedef void (* DBusRecursiveMutexUnlockFunction) (DBusMutex *mutex); +typedef dbus_bool_t (* DBusRecursiveMutexUnlockFunction) (DBusMutex *mutex); /** Creates a new condition variable. Found in #DBusThreadFunctions. * Can only fail (returning #NULL) due to lack of memory. Index: dbus/dbus-connection.c =================================================================== --- dbus/dbus-connection.c (revision 651) +++ dbus/dbus-connection.c (working copy) @@ -63,14 +63,16 @@ #define CONNECTION_LOCK(connection) do { \ if (TRACE_LOCKS) { _dbus_verbose (" LOCK: %s\n", _DBUS_FUNCTION_NAME); } \ - _dbus_mutex_lock ((connection)->mutex); \ + _dbus_assert((connection)->mutex); \ + _dbus_assert(_dbus_mutex_lock ((connection)->mutex)); \ TOOK_LOCK_CHECK (connection); \ } while (0) #define CONNECTION_UNLOCK(connection) do { \ if (TRACE_LOCKS) { _dbus_verbose (" UNLOCK: %s\n", _DBUS_FUNCTION_NAME); } \ RELEASING_LOCK_CHECK (connection); \ - _dbus_mutex_unlock ((connection)->mutex); \ + _dbus_assert((connection)->mutex); \ + _dbus_assert(_dbus_mutex_unlock ((connection)->mutex)); \ } while (0) #define DISPATCH_STATUS_NAME(s) \ Index: dbus/dbus-threads-internal.h =================================================================== --- dbus/dbus-threads-internal.h (revision 651) +++ dbus/dbus-threads-internal.h (working copy) @@ -31,8 +31,8 @@ DBusMutex* _dbus_mutex_new (void); void _dbus_mutex_free (DBusMutex *mutex); -void _dbus_mutex_lock (DBusMutex *mutex); -void _dbus_mutex_unlock (DBusMutex *mutex); +dbus_bool_t _dbus_mutex_lock (DBusMutex *mutex); +dbus_bool_t _dbus_mutex_unlock (DBusMutex *mutex); void _dbus_mutex_new_at_location (DBusMutex **location_p); void _dbus_mutex_free_at_location (DBusMutex **location_p);