From 62a03ef9d513beabe589118ce16a2cf6acfec541 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Thu, 23 Aug 2007 19:38:54 +1000 Subject: [PATCH] get rid of the explicit global timeout used in the previous example and try this time by relying on the timeouts for the individual controls (This used to be ctdb commit 448a0eb4fd896dc545aa0b4bb2ba4628491578be) --- ctdb/server/ctdb_recoverd.c | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/ctdb/server/ctdb_recoverd.c b/ctdb/server/ctdb_recoverd.c index c931efcf2ce..208db3963d5 100644 --- a/ctdb/server/ctdb_recoverd.c +++ b/ctdb/server/ctdb_recoverd.c @@ -1238,12 +1238,6 @@ static int verify_recmaster_callback(struct ctdb_control_cb_data *cb_data, void return 0; } -static void verify_recmaster_timeout(struct event_context *ev, struct timed_event *te, struct timeval t, void *p) -{ - uint32_t *timedout = (uint32_t *)p; - - *timedout = 1; -} /* verify that all nodes agree that we are the recmaster */ static enum monitor_result verify_recmaster(struct ctdb_context *ctdb, struct ctdb_node_map *nodemap, uint32_t vnn) @@ -1252,7 +1246,6 @@ static enum monitor_result verify_recmaster(struct ctdb_context *ctdb, struct ct TALLOC_CTX *mem_ctx = talloc_new(ctdb); struct ctdb_client_control_state *state; enum monitor_result status; - uint32_t timedout; int j; rmdata = talloc(mem_ctx, struct verify_recmaster_data); @@ -1268,7 +1261,7 @@ static enum monitor_result verify_recmaster(struct ctdb_context *ctdb, struct ct continue; } state = ctdb_ctrl_getrecmaster_send(ctdb, mem_ctx, - timeval_zero(), + CONTROL_TIMEOUT(), nodemap->nodes[j].vnn, verify_recmaster_callback, rmdata); if (state == NULL) { @@ -1288,19 +1281,9 @@ static enum monitor_result verify_recmaster(struct ctdb_context *ctdb, struct ct /* now wait for up to the maximum number of seconds allowed or until all nodes we expect a response from has replied */ - timedout = 0; - event_add_timed(ctdb->ev, rmdata, CONTROL_TIMEOUT(), - verify_recmaster_timeout, &timedout); - - while ( (rmdata->count > 0) - && (timedout == 0) ) { + while (rmdata->count > 0) { event_loop_once(ctdb->ev); } - if (timedout) { - DEBUG(0,("Timedout while waiting for getrecmaster replies.\n")); - rmdata->status = MONITOR_FAILED; - } - status = rmdata->status; talloc_free(mem_ctx); -- 2.47.3