- && depth >= Threads.min_split_depth()
- && bestValue < beta
- && Threads.available_slave_exists(thisThread))
- bestValue = Threads.split<FakeSplit>(pos, ss, alpha, beta, bestValue, &bestMove,
- depth, threatMove, moveCount, mp, NT);
+ && depth >= Threads.minimumSplitDepth
+ && Threads.available_slave(thisThread)
+ && thisThread->splitPointsSize < MAX_SPLITPOINTS_PER_THREAD)
+ {
+ assert(bestValue < beta);
+
+ thisThread->split<FakeSplit>(pos, ss, alpha, beta, &bestValue, &bestMove,
+ depth, threatMove, moveCount, &mp, NT);
+ if (bestValue >= beta)
+ break;
+ }