- 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,
- 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;
+ Thread* available_slave(const Thread* master) const;
+ void wait_for_think_finished();
+ void start_thinking(const Position&, const Search::LimitsType&, Search::StateStackPtr&);
+