X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=0f2373cd28fd28838c1e79990c5d26349ae554a2;hp=65b128f5f0dce6a18133113e2f7ecf3954c3101d;hb=d156e7a20b4ea15c2cbb4bcfa2dca5f1e96ece3b;hpb=c386ce0023f114e387c02a7e36256d8b0a908cd0 diff --git a/src/search.cpp b/src/search.cpp index 65b128f5..0f2373cd 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -2154,7 +2154,7 @@ void Thread::idle_loop(SplitPoint* sp) { // instead of wasting CPU time polling for work. while ( do_sleep || do_terminate - || (Threads.use_sleeping_threads() && state == Thread::AVAILABLE)) + || (Threads.use_sleeping_threads() && !is_searching)) { assert((!sp && threadID) || Threads.use_sleeping_threads()); @@ -2180,14 +2180,14 @@ void Thread::idle_loop(SplitPoint* sp) { // particular we need to avoid a deadlock in case a master thread has, // in the meanwhile, allocated us and sent the wake_up() call before we // had the chance to grab the lock. - if (do_sleep || state == Thread::AVAILABLE) + if (do_sleep || !is_searching) cond_wait(&sleepCond, &sleepLock); lock_release(&sleepLock); } // If this thread has been assigned work, launch a search - if (state == Thread::SEARCHING) + if (is_searching) { assert(!do_terminate); @@ -2208,15 +2208,15 @@ void Thread::idle_loop(SplitPoint* sp) { else assert(false); - assert(state == Thread::SEARCHING); + assert(is_searching); - state = Thread::AVAILABLE; + is_searching = false; // Wake up master thread so to allow it to return from the idle loop in // case we are the last slave of the split point. if ( Threads.use_sleeping_threads() && threadID != tsp->master - && Threads[tsp->master].state == Thread::AVAILABLE) + && !Threads[tsp->master].is_searching) Threads[tsp->master].wake_up(); }