-void ThreadsManager::wait_for_search_finished() {
-
- Thread* main = threads[0];
- lock_grab(main->sleepLock);
- while (!main->do_sleep) cond_wait(sleepCond, main->sleepLock);
- lock_release(main->sleepLock);
-}
-
-
-// ThreadsManager::start_searching() wakes up the main thread sleeping in
-// main_loop() so to start a new search, then returns immediately.
-
-void ThreadsManager::start_searching(const Position& pos, const LimitsType& limits,
- const std::set<Move>& searchMoves) {
+void ThreadPool::start_searching(const Position& pos, const LimitsType& limits,
+ const std::vector<Move>& searchMoves, StateStackPtr& states) {