-/// Thread struct keeps together all the thread related stuff like locks, state
-/// and especially split points. We also use per-thread pawn and material hash
-/// tables so that once we get a pointer to an entry its life time is unlimited
-/// and we don't have to care about someone changing the entry under our feet.
-
-struct Thread : public ThreadBase {
-
- Thread();
- virtual void idle_loop();
- bool cutoff_occurred() 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,
- Depth depth, int moveCount, MovePicker* movePicker, int nodeType, bool cutNode);
+/// ThreadPool struct handles all the threads-related stuff like init, starting,
+/// parking and, most importantly, launching a thread. All the access to threads
+/// is done through this class.