Fix regression: engine hangs while pondering
[stockfish] / src / thread.cpp
index ca9fe14d8fa48dfee160df9e454fbfadb2013f53..4a37d393edff4ca6f83eaa9a7f86917ec8dcc6ef 100644 (file)
@@ -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);