wait_for_stop_or_ponderhit();
cout << "bestmove " << bookMove << endl;
- return true;
+ return !QuitRequest;
}
}
static int lastInfoTime;
int t = current_search_time();
- bool stillAtFirstMove = FirstRootMove
- && !AspirationFailLow
- && t > TimeMgr.available_time();
-
- bool noMoreTime = t > TimeMgr.maximum_time()
- || stillAtFirstMove;
-
// Poll for input
if (data_available())
{
// should continue searching but switching from pondering to normal search.
Pondering = false;
- if ( Iteration >= 3 && UseTimeManagement
- && (noMoreTime || StopOnPonderhit))
+ if (StopOnPonderhit)
StopRequest = true;
}
}
if (Pondering)
return;
+ bool stillAtFirstMove = FirstRootMove
+ && !AspirationFailLow
+ && t > TimeMgr.available_time();
+
+ bool noMoreTime = t > TimeMgr.maximum_time()
+ || stillAtFirstMove;
+
if ( (Iteration >= 3 && UseTimeManagement && noMoreTime)
|| (ExactMaxTime && t >= ExactMaxTime)
|| (Iteration >= 3 && MaxNodes && pos.nodes_searched() >= MaxNodes))
// the UCI protocol: When pondering, the engine is not allowed to give a
// "bestmove" before the GUI sends it a "stop" or "ponderhit" command.
// We simply wait here until one of these commands is sent, and return,
- // after which the bestmove and pondermove will be printed (in id_loop()).
+ // after which the bestmove and pondermove will be printed.
void wait_for_stop_or_ponderhit() {