diff options
author | Daniel Stone <daniel@fooishbar.org> | 2007-08-01 01:09:07 +0300 |
---|---|---|
committer | Daniel Stone <daniel@fooishbar.org> | 2007-08-01 01:53:31 +0300 |
commit | aa75b3481724834da2f855d8dd2ff36074bd5706 (patch) | |
tree | e1d24208a012df35a542aa128236f4a274f59980 /config/dbus-core.c | |
parent | 4d238c5c67461ed747aa6c021d1532734f4c63fe (diff) |
Hotplug: D-Bus: Dispatch harder
Dispatch until we've got nothing left to dispatch, since apparently
dispatching will only ever fire a single message ...
Diffstat (limited to 'config/dbus-core.c')
-rw-r--r-- | config/dbus-core.c | 8 |
1 files 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 |