aboutsummaryrefslogtreecommitdiffstats
path: root/planning/planning.cpp
diff options
context:
space:
mode:
authorSteinar H. Gunderson <sgunderson@bigfoot.com>2014-04-11 21:12:00 +0200
committerSteinar H. Gunderson <sgunderson@bigfoot.com>2014-04-11 21:12:00 +0200
commit4f2251a3faeff1e23838a4c0e994c4708346e97e (patch)
tree5c40c8463954f28db357b7f9a0370ffebbbebe50 /planning/planning.cpp
parentf9a4dd91775e34ed7f7914401644b8a6cd41c2e6 (diff)
When searching for optimal distro placement, only log when we actually find a new best one.
Diffstat (limited to 'planning/planning.cpp')
-rw-r--r--planning/planning.cpp10
1 files 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<int> *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;
}