mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 16:23:09 +00:00
Remove uithread
With the current questions and issues around threading, I had a look at https://github.com/official-stockfish/Stockfish/issues/2299. It seems there was a problem with data races when requesting eval via UCI while a search was already running. To fix this an extra thread uithread was created, presumably to avoid an overlap with Threads.main() that was causing problems. Making this eval request seems to be outside the scope of UCI, and @vondele also reports that the data race is not even fixed reliably by this change. I suggest we simplify the threading here by removing this uithread and adding a comment signaling that user should not request eval when a search is already running. Closes https://github.com/official-stockfish/Stockfish/pull/2310 No functional change.
This commit is contained in:
parent
472de897cb
commit
12d58adc68
1 changed files with 3 additions and 3 deletions
|
@ -191,9 +191,8 @@ void UCI::loop(int argc, char* argv[]) {
|
|||
Position pos;
|
||||
string token, cmd;
|
||||
StateListPtr states(new std::deque<StateInfo>(1));
|
||||
auto uiThread = std::make_shared<Thread>(0);
|
||||
|
||||
pos.set(StartFEN, false, &states->back(), uiThread.get());
|
||||
pos.set(StartFEN, false, &states->back(), Threads.main());
|
||||
|
||||
for (int i = 1; i < argc; ++i)
|
||||
cmd += std::string(argv[i]) + " ";
|
||||
|
@ -229,7 +228,8 @@ void UCI::loop(int argc, char* argv[]) {
|
|||
else if (token == "ucinewgame") Search::clear();
|
||||
else if (token == "isready") sync_cout << "readyok" << sync_endl;
|
||||
|
||||
// Additional custom non-UCI commands, mainly for debugging
|
||||
// Additional custom non-UCI commands, mainly for debugging.
|
||||
// Do not use these commands during a search!
|
||||
else if (token == "flip") pos.flip();
|
||||
else if (token == "bench") bench(pos, is, states);
|
||||
else if (token == "d") sync_cout << pos << sync_endl;
|
||||
|
|
Loading…
Add table
Reference in a new issue