mirror of
https://github.com/sockspls/badfish
synced 2025-07-11 19:49:14 +00:00
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 1ac417edb8
of 5/10/2012
Spotted by Frank Genot.
No functional change.
This commit is contained in:
parent
d0d69a5358
commit
07989712af
1 changed files with 0 additions and 3 deletions
|
@ -1020,11 +1020,8 @@ split_point_start: // At split points actual search starts from here
|
||||||
&& depth >= Threads.min_split_depth()
|
&& depth >= Threads.min_split_depth()
|
||||||
&& bestValue < beta
|
&& bestValue < beta
|
||||||
&& Threads.available_slave_exists(thisThread))
|
&& Threads.available_slave_exists(thisThread))
|
||||||
{
|
|
||||||
bestValue = Threads.split<FakeSplit>(pos, ss, alpha, beta, bestValue, &bestMove,
|
bestValue = Threads.split<FakeSplit>(pos, ss, alpha, beta, bestValue, &bestMove,
|
||||||
depth, threatMove, moveCount, mp, NT);
|
depth, threatMove, moveCount, mp, NT);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SpNode)
|
if (SpNode)
|
||||||
|
|
Loading…
Add table
Reference in a new issue