From 52337f93513ec110a0848d1a74ec36ee74e6efa7 Mon Sep 17 00:00:00 2001 From: "Ignacio R. Morelle" Date: Sat, 7 Jun 2014 16:55:04 -0400 Subject: [PATCH] campaignd: Replace write_config() scheduling mechanism Check time() deltas instead of incrementing a counter variable forever. This should allow to extract a bit of the run() logic into a separate method later. (Backported a8ea4796a0db6ef344da0259f2758048ac6997ce from master.) --- src/campaign_server/campaign_server.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/campaign_server/campaign_server.cpp b/src/campaign_server/campaign_server.cpp index 32792e1e086d..58900c997473 100644 --- a/src/campaign_server/campaign_server.cpp +++ b/src/campaign_server/campaign_server.cpp @@ -360,7 +360,9 @@ void server::run() network::connection sock = 0; - for(int increment = 0;; ++increment) + time_t last_ts = time(NULL); + + for(;;) { try { std::string admin_cmd; @@ -372,9 +374,12 @@ void server::run() break; } } - //write config to disk every ten minutes - if((increment%(60*10*50)) == 0) { + + const time_t cur_ts = time(NULL); + // Write config to disk every ten minutes. + if(cur_ts - last_ts >= 60) { write_config(); + last_ts = cur_ts; } network::process_send_queue();