SplitPoint* parent;
const Position* pos;
Depth depth;
- bool pvNode;
Value beta;
+ int nodeType;
int ply;
int master;
Move threatMove;
bool cutoff_occurred() const;
bool is_available_to(int master) const;
+ SplitPoint splitPoints[MAX_ACTIVE_SPLIT_POINTS];
MaterialInfoTable materialTable;
PawnInfoTable pawnTable;
int maxPly;
volatile ThreadState state;
SplitPoint* volatile splitPoint;
volatile int activeSplitPoints;
- SplitPoint splitPoints[MAX_ACTIVE_SPLIT_POINTS];
};
template <bool Fake>
void split(Position& pos, SearchStack* ss, Value* alpha, const Value beta, Value* bestValue,
- Depth depth, Move threatMove, int moveCount, MovePicker* mp, bool pvNode);
+ Depth depth, Move threatMove, int moveCount, MovePicker* mp, int nodeType);
private:
+ Thread threads[MAX_THREADS];
Lock mpLock;
Depth minimumSplitDepth;
int maxThreadsPerSplitPoint;
- bool useSleepingThreads;
int activeThreads;
+ bool useSleepingThreads;
volatile bool allThreadsShouldExit;
- Thread threads[MAX_THREADS];
};
extern ThreadsManager Threads;