From eaefe03a8891b84e3f9e1f99f9098d65567e3092 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sat, 28 Oct 2006 01:41:37 +0000 Subject: 2006-10-27 Havoc Pennington * dbus/dbus-test.c: enclose more of the file in the DBUS_BUILD_TESTS check. * dbus/dbus-sysdeps-pthread.c (PTHREAD_CHECK): fix for DBUS_DISABLE_ASSERT case. * dbus/dbus-connection.c (dbus_connection_get_unix_user): document that it only works on the server side * dbus/dbus-bus.c: add a global lock covering the BusData we attach to each connection (internal_bus_get): lock our access to the BusData (dbus_bus_register): lock the entire registration process with _DBUS_LOCK(bus_datas). If we get the lock and registration is already complete, silently return (vs. previous behavior of aborting). (dbus_bus_set_unique_name): lock the BusData (dbus_bus_get_unique_name): lock the BusData --- dbus/dbus-sysdeps-pthread.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'dbus/dbus-sysdeps-pthread.c') diff --git a/dbus/dbus-sysdeps-pthread.c b/dbus/dbus-sysdeps-pthread.c index fc2acd40..2f33b1c4 100644 --- a/dbus/dbus-sysdeps-pthread.c +++ b/dbus/dbus-sysdeps-pthread.c @@ -50,8 +50,9 @@ typedef struct { #ifdef DBUS_DISABLE_ASSERT -#define PTHREAD_CHECK(func_name, result_or_call) do { \ - do { (result_or_call) } while (0) +/* (tmp != 0) is a no-op usage to silence compiler */ +#define PTHREAD_CHECK(func_name, result_or_call) \ + do { int tmp = (result_or_call); if (tmp != 0) {;} } while (0) #else #define PTHREAD_CHECK(func_name, result_or_call) do { \ int tmp = (result_or_call); \ -- cgit