is >> skipws >> token;
if (token == "quit" || token == "stop")
- Threads.stop_thinking();
+ {
+ Search::Signals.stop = true;
+ Threads.wait_for_search_finished(); // Cannot quit while threads are running
+ }
else if (token == "ponderhit")
{
Search::Limits.ponder = false;
if (Search::Signals.stopOnPonderhit)
- Threads.stop_thinking();
+ {
+ Search::Signals.stop = true;
+ Threads.wait_for_search_finished();
+ }
}
else if (token == "go")
limits.time = time[pos.side_to_move()];
limits.increment = inc[pos.side_to_move()];
- Threads.start_thinking(pos, limits, searchMoves, true);
+ Threads.start_searching(pos, limits, searchMoves, true);
}