void uci_send_stop_sync(uci_t * uci) { char string[StringSize]; int event; ASSERT(uci_is_ok(uci)); ASSERT(uci->searching); ASSERT(uci->pending_nb>=1); // send "stop" and wait for "bestmove" uci_send_stop(uci); do { engine_get(uci->engine,string,StringSize); event = uci_parse(uci,string); } while (!engine_eof(Engine) && (event & EVENT_STOP) == 0); }
static void stop_search() { if (Uci->searching) { ASSERT(Uci->searching); ASSERT(Uci->pending_nb>=1); my_log("POLYGLOT STOP SEARCH\n"); /* engine_send(Engine,"stop"); Uci->searching = false; */ if (option_get_bool("SyncStop")) { uci_send_stop_sync(Uci); } else { uci_send_stop(Uci); } } }