class ThreadPool {
public:
- void init(); // No c'tor, Threads object is global and engine shall be fully initialized
- ~ThreadPool();
+ void init(); // No c'tor and d'tor, threads rely on globals that should
+ void exit(); // be initialized and valid during the whole thread lifetime.
Thread& operator[](size_t id) { return *threads[id]; }
bool use_sleeping_threads() const { return useSleepingThreads; }
bool available_slave_exists(Thread* master) const;
void set_timer(int msec);
void wait_for_search_finished();
- void start_searching(const Position& pos, const Search::LimitsType& limits,
- const std::vector<Move>& searchMoves);
+ void start_searching(const Position&, const Search::LimitsType&,
+ const std::vector<Move>&, Search::StateStackPtr&);
template <bool Fake>
Value split(Position& pos, Search::Stack* ss, Value alpha, Value beta, Value bestValue, Move* bestMove,