From 07989712afa57e2542835980d8c518d79d90f36b Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 3 Nov 2012 14:37:10 +0100 Subject: [PATCH] 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. --- src/search.cpp | 3 --- 1 file changed, 3 deletions(-) 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) -- 2.39.2