summaryrefslogtreecommitdiffstats
path: root/bus/utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'bus/utils.c')
-rw-r--r--bus/utils.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/bus/utils.c b/bus/utils.c
index fadfc140..8a68d8a4 100644
--- a/bus/utils.c
+++ b/bus/utils.c
@@ -39,3 +39,20 @@ bus_wait_for_memory (void)
#endif
}
+void
+bus_connection_dispatch_all_messages (DBusConnection *connection)
+{
+ while (bus_connection_dispatch_one_message (connection))
+ ;
+}
+
+dbus_bool_t
+bus_connection_dispatch_one_message (DBusConnection *connection)
+{
+ DBusDispatchStatus status;
+
+ while ((status = dbus_connection_dispatch (connection)) == DBUS_DISPATCH_NEED_MEMORY)
+ bus_wait_for_memory ();
+
+ return status == DBUS_DISPATCH_DATA_REMAINS;
+}