From dbf4e468a590d28639825058a10adf3108fc62da Mon Sep 17 00:00:00 2001 From: Grace Chin Date: Wed, 9 Apr 2025 11:04:48 -0400 Subject: [PATCH] wip --- daemons/controld/controld_schedulerd.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/daemons/controld/controld_schedulerd.c b/daemons/controld/controld_schedulerd.c index 1c71e0965fe..20e05ff91c6 100644 --- a/daemons/controld/controld_schedulerd.c +++ b/daemons/controld/controld_schedulerd.c @@ -438,11 +438,20 @@ force_local_option(xmlNode *xml, const char *attr_name, const char *attr_value) freeXpathObject(xpathObj); } +static gboolean +sleep_timer(gpointer data) +{ + controld_set_fsa_action_flags(A_PE_INVOKE); + controld_trigger_fsa(); + return G_SOURCE_CONTINUE; +} + static void do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void *user_data) { char *ref = NULL; pid_t watchdog = pcmk__locate_sbd(); + static mainloop_timer_t *timer = NULL; if (rc != pcmk_ok) { crm_err("Could not retrieve the Cluster Information Base: %s " @@ -470,8 +479,8 @@ do_pe_invoke_callback(xmlNode * msg, int call_id, int rc, xmlNode * output, void crm_debug("Re-asking for the CIB: %d other peer updates still pending", (num_cib_op_callbacks() - 1)); sleep(1); - controld_set_fsa_action_flags(A_PE_INVOKE); - controld_trigger_fsa(); + timer = mainloop_timer_add("timer", 1000, TRUE, sleep_timer, NULL); + mainloop_timer_start(sleep_timer); return; }