mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 16:23:09 +00: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:
parent
ecb98a3330
commit
44c78fdb7a
1 changed files with 4 additions and 2 deletions
|
@ -433,8 +433,10 @@ void Thread::listener_loop() {
|
||||||
if (is_searching)
|
if (is_searching)
|
||||||
{
|
{
|
||||||
// Command "quit" is the last one received by the GUI, so park the
|
// Command "quit" is the last one received by the GUI, so park the
|
||||||
// thread waiting for exiting.
|
// thread waiting for exiting. Also, after a "stop", for instance on a
|
||||||
if (cmd == "quit")
|
// 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;
|
is_searching = false;
|
||||||
|
|
||||||
do_uci_async_cmd(cmd);
|
do_uci_async_cmd(cmd);
|
||||||
|
|
Loading…
Add table
Reference in a new issue