Sfoglia il codice sorgente

Fix dbus part of corosync-notifyd

Function dbus_connection_read_write which causes block for 0.5 sec is
replaced by correct dispatching of input and flushing of output buffer.

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
(cherry picked from commit 4b4447780898264a22da797976d473d4ca90504d)
Jan Friesse 13 anni fa
parent
commit
f21337e67c
1 ha cambiato i file con 8 aggiunte e 1 eliminazioni
  1. 8 1
      tools/corosync-notifyd.c

+ 8 - 1
tools/corosync-notifyd.c

@@ -394,7 +394,14 @@ static void
 _cs_dbus_auto_flush(void)
 {
 	dbus_connection_ref(db);
-	dbus_connection_read_write(db, 500);
+	while (dbus_connection_get_dispatch_status(db) == DBUS_DISPATCH_DATA_REMAINS) {
+		dbus_connection_dispatch(db);
+	}
+
+	while (dbus_connection_has_messages_to_send(db)) {
+		dbus_connection_flush(db);
+	}
+
 	dbus_connection_unref(db);
 }