Thread();
virtual void idle_loop();
bool cutoff_occurred() const;
- bool is_available_to(const Thread* master) const;
+ bool available_to(const Thread* master) const;
template <bool Fake>
void split(Position& pos, const Search::Stack* ss, Value alpha, Value beta, Value* bestValue, Move* bestMove,
};
struct TimerThread : public ThreadBase {
- TimerThread() : msec(0) {}
+ TimerThread() : run(false) {}
virtual void idle_loop();
- int msec;
+ bool run;
+ static const int Resolution = 5; // msec between two check_time() calls
};
/// ThreadPool struct handles all the threads related stuff like init, starting,
-/// parking and, the most important, launching a slave thread at a split point.
+/// parking and, most importantly, launching a slave thread at a split point.
/// All the access to shared thread data is done through this class.
struct ThreadPool : public std::vector<Thread*> {
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.
+ void exit(); // be initialized and are valid during the whole thread lifetime.
MainThread* main() { return static_cast<MainThread*>((*this)[0]); }
void read_uci_options();