diff options
Diffstat (limited to 'dbus/dbus-connection.c')
-rw-r--r-- | dbus/dbus-connection.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index 7b13b249..2e291eee 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -3412,6 +3412,7 @@ _dbus_connection_read_write_dispatch (DBusConnection *connection, { DBusDispatchStatus dstatus; dbus_bool_t no_progress_possible; + dbus_bool_t progress_possible; dstatus = dbus_connection_get_dispatch_status (connection); @@ -3447,12 +3448,13 @@ _dbus_connection_read_write_dispatch (DBusConnection *connection, * as long as the transport is open. */ if (dispatch) - no_progress_possible = connection->n_incoming == 0 && - connection->disconnect_message_link == NULL; + progress_possible = connection->n_incoming != 0 || + connection->disconnect_message_link != NULL; else - no_progress_possible = _dbus_connection_get_is_connected_unlocked (connection); + progress_possible = _dbus_connection_get_is_connected_unlocked (connection); + CONNECTION_UNLOCK (connection); - return !no_progress_possible; /* TRUE if we can make more progress */ + return progress_possible; /* TRUE if we can make more progress */ } |