SplitPoint* volatile curSplitPoint;
volatile int splitPointsCnt;
volatile bool is_searching;
- volatile bool do_sleep;
+ volatile bool is_finished;
volatile bool do_exit;
};
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; }
int min_split_depth() const { return minimumSplitDepth; }
size_t size() const { return threads.size(); }
Thread* main_thread() { return threads[0]; }
+ Thread* timer_thread() { return timer; }
void read_uci_options();
bool available_slave_exists(Thread* master) const;
- void set_timer(int msec);
void wait_for_search_finished();
void start_searching(const Position&, const Search::LimitsType&,
const std::vector<Move>&, Search::StateStackPtr&);
ConditionVariable sleepCondition;
Depth minimumSplitDepth;
int maxThreadsPerSplitPoint;
- bool useSleepingThreads;
+public:
+ bool sleepWhileIdle;
};
extern ThreadPool Threads;