- bool available_slave_exists(int master) const;
- void set_timer(int msec);
- void stop_thinking();
- void start_thinking(const Position& pos, const Search::LimitsType& limits,
- const std::set<Move>& = std::set<Move>(), bool async = false);
-
- template <bool Fake>
- Value split(Position& pos, Search::Stack* ss, Value alpha, Value beta, Value bestValue, Move* bestMove,
- Depth depth, Move threatMove, int moveCount, MovePicker* mp, int nodeType);
-private:
- friend struct Thread;
-
- Thread threads[MAX_THREADS + 1]; // Last one is used as a timer
- Lock splitLock;
- WaitCondition sleepCond;
- Depth minimumSplitDepth;
- int maxThreadsPerSplitPoint;
- int activeThreads;
- bool useSleepingThreads;