From 4f2251a3faeff1e23838a4c0e994c4708346e97e Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Fri, 11 Apr 2014 21:12:00 +0200 Subject: When searching for optimal distro placement, only log when we actually find a new best one. --- planning/planning.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/planning/planning.cpp b/planning/planning.cpp index 6f2e2f0..06b839c 100644 --- a/planning/planning.cpp +++ b/planning/planning.cpp @@ -690,11 +690,7 @@ int Planner::do_work(int distro_placements[NUM_DISTRO]) void plan_recursively(int distro_placements[NUM_DISTRO], int distro_num, int min_placement, int max_placement, atomic *best_cost) { if (distro_num == NUM_DISTRO) { - string log; Planner p; - log.clear(); - p.set_log_buf(&log); - int cost = p.do_work(distro_placements); try_again: int old_best_cost = best_cost->load(); @@ -709,7 +705,13 @@ try_again: printf("%d ", distro_placements[i]); } printf("= %d\n", cost); + + // Do it once more, but this time with logging enabled. + string log; + p.set_log_buf(&log); + p.do_work(distro_placements); printf("%s\n", log.c_str()); + return; } -- cgit v1.2.3