X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmovepick.cpp;h=41b85f074ae0994a86c6615707ad03bb5be925b2;hp=f3e094c6517c67fecc4b883e08f0d414105790ee;hb=0a1092f64eb9eb232094036086fc5c98ed1f3c46;hpb=399968f1d086fae1da777ca18671b996a3d6ba9d diff --git a/src/movepick.cpp b/src/movepick.cpp index f3e094c6..41b85f07 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -233,15 +233,15 @@ void MovePicker::generate_next() { killers[2].move = killers[3].move = MOVE_NONE; killers[4].move = killers[5].move = MOVE_NONE; + // Please note that following code is racy and could yield to rare (less + // than 1 out of a million) duplicated entries in SMP case. This is harmless. + // Be sure countermoves are different from killers for (int i = 0; i < 2; ++i) if ( countermoves[i] != (cur+0)->move && countermoves[i] != (cur+1)->move) (end++)->move = countermoves[i]; - if (countermoves[1] && countermoves[1] == countermoves[0]) // Due to SMP races - killers[3].move = MOVE_NONE; - // Be sure followupmoves are different from killers and countermoves for (int i = 0; i < 2; ++i) if ( followupmoves[i] != (cur+0)->move @@ -249,10 +249,6 @@ void MovePicker::generate_next() { && followupmoves[i] != (cur+2)->move && followupmoves[i] != (cur+3)->move) (end++)->move = followupmoves[i]; - - if (followupmoves[1] && followupmoves[1] == followupmoves[0]) // Due to SMP races - (--end)->move = MOVE_NONE; - return; case QUIETS_1_S1: