X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=40e548dc301da8e231d377c858b133615a87189b;hp=8257b5bb9f33d308ef668539e75ccb4f89567f12;hb=43204d9ac210a3a68b7b9785f3089d38412c1375;hpb=369789b426f1cb63a8855c131855a2e37bc61846 diff --git a/src/search.cpp b/src/search.cpp index 8257b5bb..40e548dc 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -2071,20 +2071,8 @@ split_point_start: // At split points actual search starts from here do pos.undo_move(pv[--ply]); while (ply); } -} // namespace - - -// Little helper used by idle_loop() to check that all the slave threads of a -// split point have finished searching. - -static bool all_slaves_finished(SplitPoint* sp) { - for (int i = 0; i < Threads.size(); i++) - if (sp->is_slave[i]) - return false; - - return true; -} +} // namespace // Thread::idle_loop() is where the thread is parked when it has no work to do. @@ -2114,7 +2102,7 @@ void Thread::idle_loop(SplitPoint* sp) { lock_grab(&sleepLock); // If we are master and all slaves have finished don't go to sleep - if (sp && all_slaves_finished(sp)) + if (sp && Threads.split_point_finished(sp)) { lock_release(&sleepLock); break; @@ -2166,7 +2154,7 @@ void Thread::idle_loop(SplitPoint* sp) { // If this thread is the master of a split point and all slaves have // finished their work at this split point, return from the idle loop. - if (sp && all_slaves_finished(sp)) + if (sp && Threads.split_point_finished(sp)) { // Because sp->is_slave[] is reset under lock protection, // be sure sp->lock has been released before to return.