From: Marco Costalba Date: Sat, 3 Nov 2012 13:37:10 +0000 (+0100) Subject: Don't 'break' upon returning from split() X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=07989712afa57e2542835980d8c518d79d90f36b;ds=sidebyside Don't 'break' upon returning from split() There is no guarantee that split() consumes all the node's moves. Indeed split() can return without performing any job for instance because MAX_SPLITPOINTS_PER_THREAD is reached or becuase no available threads are found (this latter case is much more common). So search must continue in those cases and we cannot force exiting from move's loop. Bug introduced by 1ac417edb845 of 5/10/2012 Spotted by Frank Genot. No functional change. --- diff --git a/src/search.cpp b/src/search.cpp index eda5ebc3..9f617210 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1020,11 +1020,8 @@ split_point_start: // At split points actual search starts from here && depth >= Threads.min_split_depth() && bestValue < beta && Threads.available_slave_exists(thisThread)) - { bestValue = Threads.split(pos, ss, alpha, beta, bestValue, &bestMove, depth, threatMove, moveCount, mp, NT); - break; - } } if (SpNode)