diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | glib/dbus-gmain.c | 6 |
2 files changed, 9 insertions, 3 deletions
@@ -1,3 +1,9 @@ +2005-04-13 Havoc Pennington <hp@redhat.com> + + * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one + message at a time to avoid monopolizing the main loop, bug + #2953 from Benjamin Otte + 2005-04-09 Havoc Pennington <hp@redhat.com> * dbus/dbus-string.c (copy): change a memcpy to memmove due to diff --git a/glib/dbus-gmain.c b/glib/dbus-gmain.c index 57be8490..1843f224 100644 --- a/glib/dbus-gmain.c +++ b/glib/dbus-gmain.c @@ -103,9 +103,9 @@ message_queue_dispatch (GSource *source, DBusConnection *connection = ((DBusGMessageQueue *)source)->connection; dbus_connection_ref (connection); - - while (dbus_connection_dispatch (connection) == DBUS_DISPATCH_DATA_REMAINS) - ; + + /* Only dispatch once - we don't want to starve other GSource */ + dbus_connection_dispatch (connection); dbus_connection_unref (connection); |