From cf86f1d597d0f3b6646241dc784ec6b89edd6bff Mon Sep 17 00:00:00 2001 From: Antoine Naud Date: Wed, 21 Mar 2018 08:51:42 +0000 Subject: [PATCH] src/virt.c: Decouple persistent notifications from refreshInterval When persistentNotification is true, if refreshInterval value is larger than (read) Interval, the notifications are not issued every read interval as should be. The fix consist in decoupling persistent notifications from refreshInterval. Change-Id: I157554a360510c21ffa631430446afd57b99dfab Signed-off-by: Antoine Naud --- src/virt.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/virt.c b/src/virt.c index 28991779..e01efd33 100644 --- a/src/virt.c +++ b/src/virt.c @@ -1990,13 +1990,6 @@ static int lv_read(user_data_t *ud) { /* Need to refresh domain or device lists? */ if ((last_refresh == (time_t)0) || ((interval > 0) && ((last_refresh + interval) <= t))) { - if (inst->id == 0 && persistent_notification) { - int status = persistent_domains_state_notification(); - if (status != 0) - DEBUG(PLUGIN_NAME " plugin: persistent_domains_state_notifications " - "returned with status %i", - status); - } if (refresh_lists(inst) != 0) { if (inst->id == 0) { if (!persistent_notification) @@ -2008,6 +2001,15 @@ static int lv_read(user_data_t *ud) { last_refresh = t; } + /* persistent domains state notifications are handled by instance 0 */ + if (inst->id == 0 && persistent_notification) { + int status = persistent_domains_state_notification(); + if (status != 0) + DEBUG(PLUGIN_NAME " plugin: persistent_domains_state_notifications " + "returned with status %i", + status); + } + #if COLLECT_DEBUG for (int i = 0; i < state->nr_domains; ++i) DEBUG(PLUGIN_NAME " plugin: domain %s", -- 2.11.0