X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=775ad3effeddd7275f3f1769fa3bf350d8dcb412;hp=974267a635eb01eed4431ae61a84e6cf0c70ce9c;hb=12feb5866fdaff20df42a77e19b75b24602f13bc;hpb=c67b9916f1756b56895d66efffc88edcc0e15566 diff --git a/src/search.cpp b/src/search.cpp index 974267a6..775ad3ef 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -2583,17 +2583,18 @@ namespace { { // Slave threads can exit as soon as AllThreadsShouldExit raises, // master should exit as last one. - if (AllThreadsShouldExit && !waitSp) + if (AllThreadsShouldExit) { + assert(!waitSp); threads[threadID].state = THREAD_TERMINATED; return; } // If we are not thinking, wait for a condition to be signaled // instead of wasting CPU time polling for work. - while ( threadID != 0 - && (AllThreadsShouldSleep || threadID >= ActiveThreads)) + while (AllThreadsShouldSleep || threadID >= ActiveThreads) { + assert(threadID != 0); threads[threadID].state = THREAD_SLEEPING; #if !defined(_MSC_VER) @@ -2613,7 +2614,7 @@ namespace { // If this thread has been assigned work, launch a search if (threads[threadID].state == THREAD_WORKISWAITING) { - assert(!AllThreadsShouldExit); + assert(!AllThreadsShouldExit && !AllThreadsShouldSleep); threads[threadID].state = THREAD_SEARCHING; @@ -2819,7 +2820,9 @@ namespace { assert(p.is_ok()); assert(sstck != NULL); assert(ply >= 0 && ply < PLY_MAX); - assert(*bestValue >= -VALUE_INFINITE && *bestValue <= *alpha); + assert(*bestValue >= -VALUE_INFINITE); + assert( ( pvNode && *bestValue <= *alpha) + || (!pvNode && *bestValue < beta )); assert(!pvNode || *alpha < beta); assert(beta <= VALUE_INFINITE); assert(depth > Depth(0));