diff --git a/src/thread.cpp b/src/thread.cpp index 3b59a05d..80765cde 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -19,6 +19,7 @@ #include // For std::count #include +#include // For memset #include #include "movegen.h" @@ -43,7 +44,7 @@ namespace { extern "C" { // Thread c'tor starts a newly-created thread of execution that will call // the the virtual function idle_loop(), going immediately to sleep. -Thread::Thread() : splitPoints() { +Thread::Thread() /* : splitPoints() */ { // Value-initialization bug in MSVC searching = exit = false; maxPly = splitPointsSize = 0; @@ -280,6 +281,8 @@ void Thread::split(Position& pos, Stack* ss, Value alpha, Value beta, Value* bes sp.cutoff = false; sp.ss = ss; + memset(sp.slavesPositions, 0, sizeof(sp.slavesPositions)); + // Try to allocate available threads and ask them to start searching setting // 'searching' flag. This must be done under lock protection to avoid concurrent // allocation of the same slave by another master.