From b9f8cb78372773128257866881f632bce0884aed Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 6 Aug 2011 10:56:06 +0100 Subject: [PATCH] Fix an assert when stopping the search When StopRequest is raised we cannot immediately exit the move loop but first we need to update bestValue so to avoid assert: assert(bestValue > -VALUE_INFINITE && bestValue < VALUE_INFINITE); No functional change. Signed-off-by: Marco Costalba --- src/search.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index cc910f7d..833bbba4 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1171,16 +1171,12 @@ split_point_start: // At split points actual search starts from here } - if (RootNode) + // Finished searching the move. If StopRequest is true, the search + // was aborted because the user interrupted the search or because we + // ran out of time. In this case, the return value of the search cannot + // be trusted, and we don't update the best move and/or PV. + if (RootNode && !StopRequest) { - // Finished searching the move. If StopRequest is true, the search - // was aborted because the user interrupted the search or because we - // ran out of time. In this case, the return value of the search cannot - // be trusted, and we break out of the loop without updating the best - // move and/or PV. - if (StopRequest) - break; - // Remember searched nodes counts for this move RootMove* rm = Rml.find(move); rm->nodes += pos.nodes_searched() - nodes; -- 2.39.2