Move easyMove = EasyMove.get(pos.key());
EasyMove.clear();
- std::memset(ss-2, 0, 5 * sizeof(Stack));
+ std::memset(stack, 0, 5 * sizeof(Stack));
depth = DEPTH_ZERO;
BestMoveChanges = 0;
Depth extension, newDepth, predictedDepth;
Value bestValue, value, ttValue, eval, nullValue, futilityValue;
bool ttHit, inCheck, givesCheck, singularExtensionNode, improving;
- bool captureOrPromotion, dangerous, doFullDepthSearch;
+ bool captureOrPromotion, doFullDepthSearch;
int moveCount, quietCount;
// Step 1. Initialize node
? ci.checkSquares[type_of(pos.piece_on(from_sq(move)))] & to_sq(move)
: pos.gives_check(move, ci);
- dangerous = givesCheck
- || type_of(move) != NORMAL
- || pos.advanced_pawn_push(move);
-
// Step 12. Extend checks
if (givesCheck && pos.see_sign(move) >= VALUE_ZERO)
extension = ONE_PLY;
if ( !RootNode
&& !captureOrPromotion
&& !inCheck
- && !dangerous
+ && !givesCheck
+ && !pos.advanced_pawn_push(move)
&& bestValue > VALUE_MATED_IN_MAX_PLY)
{
// Move count based pruning
else
assert(false);
+ spinlock.acquire();
assert(searching);
searching = false;
// After releasing the lock we can't access any SplitPoint related data
// in a safe way because it could have been released under our feet by
// the sp master.
+ spinlock.release();
sp->spinlock.release();
// Try to late join to another split point if none of its slaves has