From aa75b3481724834da2f855d8dd2ff36074bd5706 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Wed, 1 Aug 2007 01:09:07 +0300 Subject: [PATCH] Hotplug: D-Bus: Dispatch harder Dispatch until we've got nothing left to dispatch, since apparently dispatching will only ever fire a single message ... --- config/dbus-core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/config/dbus-core.c b/config/dbus-core.c index b90e413f3..5cc80e32b 100644 --- a/config/dbus-core.c +++ b/config/dbus-core.c @@ -51,8 +51,12 @@ wakeup_handler(pointer data, int err, pointer read_mask) { struct dbus_core_info *info = data; - if (info->connection && FD_ISSET(info->fd, (fd_set *) read_mask)) - dbus_connection_read_write_dispatch(info->connection, 0); + if (info->connection && FD_ISSET(info->fd, (fd_set *) read_mask)) { + do { + dbus_connection_read_write_dispatch(info->connection, 0); + } while (dbus_connection_get_dispatch_status(info->connection) == + DBUS_DISPATCH_DATA_REMAINS); + } } static void