From: Ian Jackson Date: Sat, 8 Mar 2014 19:42:59 +0000 (+0000) Subject: in multicore, generator periodically checks for new best to avoid generating many... X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=matchsticks-search.git;a=commitdiff_plain;h=e8988854bd30e0a33b4a5c004859d22cb93c0e06;hp=1b6dda6020dc3991bf1e642d9bee77cd0b6dff91 in multicore, generator periodically checks for new best to avoid generating many pointless suggestions --- diff --git a/main.c b/main.c index 5eb9e19..6902365 100644 --- a/main.c +++ b/main.c @@ -202,6 +202,8 @@ static void mc_awaitpid(int wnum, pid_t pid) { } static void multicore_outer_iteration(int i, AdjWord min) { + static unsigned check_counter; + assert(i == multicore_iteration_boundary); mc_iter_min = min; mc_rwvsetup_outer(); @@ -209,6 +211,9 @@ static void multicore_outer_iteration(int i, AdjWord min) { assert(r == mc_iovlen); /* effectively, this writev arranges to transfers control * to some worker's instance of iterate_recurse via mc_iterate_worker */ + + if (!(check_counter++ & 0xff)) + multicore_check_for_new_best(); } static void mc_iterate_worker(void) {