X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=12ed75997dfaa500beccd424ef2d86529444bc1b;hp=76d0350c9c7284cf2e4ec400166174f63891c7f3;hb=950c8436edc50857b83eb3e0cbaca06407764655;hpb=b9d4e6f7fd238edffd91ebbf4b944cddcd65a955 diff --git a/src/search.cpp b/src/search.cpp index 76d0350c..12ed7599 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1043,8 +1043,8 @@ moves_loop: // When in check and at SpNode search starts from here && depth >= Threads.minimumSplitDepth && ( !thisThread->activeSplitPoint || !thisThread->activeSplitPoint->allSlavesSearching - || ( int(Threads.size()) > MAX_SLAVES_PER_SPLITPOINT - && thisThread->activeSplitPoint->slavesCount == MAX_SLAVES_PER_SPLITPOINT)) + || ( Threads.size() > MAX_SLAVES_PER_SPLITPOINT + && thisThread->activeSplitPoint->slavesMask.count() == MAX_SLAVES_PER_SPLITPOINT)) && thisThread->splitPointsSize < MAX_SPLITPOINTS_PER_THREAD) { assert(bestValue > -VALUE_INFINITE && bestValue < beta); @@ -1594,12 +1594,12 @@ void Thread::idle_loop() { for (size_t i = 0; i < Threads.size(); ++i) { - const int size = Threads[i]->splitPointsSize; // Local copy + const size_t size = Threads[i]->splitPointsSize; // Local copy sp = size ? &Threads[i]->splitPoints[size - 1] : NULL; if ( sp && sp->allSlavesSearching - && sp->slavesCount < MAX_SLAVES_PER_SPLITPOINT + && sp->slavesMask.count() < MAX_SLAVES_PER_SPLITPOINT && available_to(Threads[i])) { assert(this != Threads[i]); @@ -1610,7 +1610,7 @@ void Thread::idle_loop() { for (SplitPoint* spp = Threads[i]->activeSplitPoint; spp; spp = spp->parentSplitPoint) level++; - int score = level * 256 * 256 + sp->slavesCount * 256 - sp->depth * 1; + int score = level * 256 * 256 + (int)sp->slavesMask.count() * 256 - sp->depth * 1; if (score < bestScore) { @@ -1630,11 +1630,10 @@ void Thread::idle_loop() { sp->mutex.lock(); if ( sp->allSlavesSearching - && sp->slavesCount < MAX_SLAVES_PER_SPLITPOINT + && sp->slavesMask.count() < MAX_SLAVES_PER_SPLITPOINT && available_to(bestThread)) { sp->slavesMask.set(idx); - sp->slavesCount++; activeSplitPoint = sp; searching = true; } @@ -1706,7 +1705,7 @@ void check_time() { // Loop across all split points and sum accumulated SplitPoint nodes plus // all the currently active positions nodes. for (size_t i = 0; i < Threads.size(); ++i) - for (int j = 0; j < Threads[i]->splitPointsSize; ++j) + for (size_t j = 0; j < Threads[i]->splitPointsSize; ++j) { SplitPoint& sp = Threads[i]->splitPoints[j];