summaryrefslogtreecommitdiffstats
path: root/dbus/dbus-connection.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2006-10-27 01:09:24 +0000
committerHavoc Pennington <hp@redhat.com>2006-10-27 01:09:24 +0000
commit5886f5326da2dbe8f1a7c97736d544fa4cef169b (patch)
treedc67158b953aa57605d18ea43f1cd9f916d82716 /dbus/dbus-connection.c
parentcaae991f97ce1b09595d3229f2868268678b8de6 (diff)
2006-10-26 Havoc Pennington <hp@redhat.com>
* dbus/dbus-threads.[hc]: Documentation improvements. Clarify how condition variables relate to recursive mutexes. * dbus/dbus-sysdeps-pthread.c, dbus/dbus-sysdeps-win-thread.c, dbus/dbus-threads.c: Split the platforms-specific thread implementations into their own files. * dbus/dbus-sysdeps-pthread.c (_dbus_pthread_condvar_wait_timeout): invert the return value, it was backward. Not that anything uses it.
Diffstat (limited to 'dbus/dbus-connection.c')
-rw-r--r--dbus/dbus-connection.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index 7a20e047..e2debdd0 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -991,7 +991,7 @@ _dbus_connection_remove_pending_call (DBusConnection *connection,
*/
static dbus_bool_t
_dbus_connection_acquire_io_path (DBusConnection *connection,
- int timeout_milliseconds)
+ int timeout_milliseconds)
{
dbus_bool_t we_acquired;
@@ -1017,9 +1017,20 @@ _dbus_connection_acquire_io_path (DBusConnection *connection,
{
_dbus_verbose ("%s waiting %d for IO path to be acquirable\n",
_DBUS_FUNCTION_NAME, timeout_milliseconds);
- _dbus_condvar_wait_timeout (connection->io_path_cond,
- connection->io_path_mutex,
- timeout_milliseconds);
+
+ if (!_dbus_condvar_wait_timeout (connection->io_path_cond,
+ connection->io_path_mutex,
+ timeout_milliseconds))
+ {
+ /* We timed out before anyone signaled. */
+ /* (writing the loop to handle the !timedout case by
+ * waiting longer if needed is a pain since dbus
+ * wraps pthread_cond_timedwait to take a relative
+ * time instead of absolute, something kind of stupid
+ * on our part. for now it doesn't matter, we will just
+ * end up back here eventually.)
+ */
+ }
}
else
{