X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fthread.cpp;h=6d07ec35f3e29d1e83295c7417481dac7c9ffead;hp=cb3f8223aacf26a93199c7c2ed6cef1b8a02916c;hb=44432f67d724573d0f6e3cfea6165c9b1d125d72;hpb=d66b765eb6b3725b468a3c5f8f2cdb9693fd6bdf diff --git a/src/thread.cpp b/src/thread.cpp index cb3f8223..6d07ec35 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -319,6 +319,7 @@ Value ThreadsManager::split(Position& pos, Stack* ss, Value alpha, Value beta, sp->master = master; sp->cutoff = false; sp->slavesMask = 1ULL << master->idx; + sp->allSlavesMask = 1ULL << master->idx; sp->depth = depth; sp->bestMove = *bestMove; sp->threatMove = threatMove; @@ -347,6 +348,7 @@ Value ThreadsManager::split(Position& pos, Stack* ss, Value alpha, Value beta, if (threads[i]->is_available_to(master)) { sp->slavesMask |= 1ULL << i; + sp->allSlavesMask |= 1ULL << i; threads[i]->curSplitPoint = sp; threads[i]->is_searching = true; // Slave leaves idle_loop() @@ -354,7 +356,10 @@ Value ThreadsManager::split(Position& pos, Stack* ss, Value alpha, Value beta, threads[i]->wake_up(); if (++slavesCnt + 1 >= maxThreadsPerSplitPoint) // Master is always included + { + sp->allSlavesMask = 0; // Disable reparenting to this split point break; + } } lock_release(splitLock);