mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 08:36:33 +08:00
Fix regression: engine hangs while pondering
After a "stop" due to a ponder miss Xboard sends immediately the new position to search, without waiting for engine to effectively stop the search. It is not clear if this is a GUI bug (as I suspect) or allowed behaviour, but because it won't be fixed anyway workaround this issue making listener thread to switch to in-sync mode as soon as a "stop" command is received. Thanks to Mike Whiteley for reporting this. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -433,8 +433,10 @@ void Thread::listener_loop() {
|
||||
if (is_searching)
|
||||
{
|
||||
// Command "quit" is the last one received by the GUI, so park the
|
||||
// thread waiting for exiting.
|
||||
if (cmd == "quit")
|
||||
// thread waiting for exiting. Also, after a "stop", for instance on a
|
||||
// ponder miss, GUI can immediately send the new position to search,
|
||||
// so return to in-sync mode to avoid discarding good data.
|
||||
if (cmd == "quit" || cmd == "stop")
|
||||
is_searching = false;
|
||||
|
||||
do_uci_async_cmd(cmd);
|
||||
|
||||
Reference in New Issue
Block a user