From: Marco Costalba Date: Mon, 26 Mar 2012 17:56:48 +0000 (+0100) Subject: Simplify start_searching() signature X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=3d0d0237c52474fa7b5e4d9f52d985a69d87df2c Simplify start_searching() signature Retire the "sync" behaviour that now is up to the caller to honour. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/benchmark.cpp b/src/benchmark.cpp index 9f0ac0c1..35fd7254 100644 --- a/src/benchmark.cpp +++ b/src/benchmark.cpp @@ -119,6 +119,7 @@ void benchmark(int argc, char* argv[]) { else { Threads.start_searching(pos, limits); + Threads.wait_for_search_finished(); nodes += Search::RootPosition.nodes_searched(); } } diff --git a/src/thread.cpp b/src/thread.cpp index 65d01d91..10f432bd 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -424,13 +424,11 @@ void ThreadsManager::wait_for_search_finished() { } -// ThreadsManager::start_searching() is used by UI thread to wake up the main -// thread parked in main_loop() and starting a new search. If async is true -// then function returns immediately, otherwise caller is blocked waiting for -// the search to finish. +// 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& searchMoves, bool async) { + const std::set& searchMoves) { wait_for_search_finished(); Signals.stopOnPonderhit = Signals.firstRootMove = false; @@ -444,8 +442,5 @@ void ThreadsManager::start_searching(const Position& pos, const LimitsType& limi if (searchMoves.empty() || searchMoves.count(ml.move())) RootMoves.push_back(RootMove(ml.move())); - threads[0]->wake_up(); // Start main thread - - if (!async) - wait_for_search_finished(); + threads[0]->wake_up(); } diff --git a/src/thread.h b/src/thread.h index e6a4cf95..9b0a8bcf 100644 --- a/src/thread.h +++ b/src/thread.h @@ -126,7 +126,7 @@ public: void set_timer(int msec); void wait_for_search_finished(); void start_searching(const Position& pos, const Search::LimitsType& limits, - const std::set& = std::set(), bool async = false); + const std::set& = std::set()); template Value split(Position& pos, Search::Stack* ss, Value alpha, Value beta, Value bestValue, Move* bestMove, diff --git a/src/uci.cpp b/src/uci.cpp index 0057881b..7c2bd1e5 100644 --- a/src/uci.cpp +++ b/src/uci.cpp @@ -228,7 +228,7 @@ namespace { limits.time = time[pos.side_to_move()]; limits.increment = inc[pos.side_to_move()]; - Threads.start_searching(pos, limits, searchMoves, true); + Threads.start_searching(pos, limits, searchMoves); }