X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=4cce6a9171de9139d8e51e717d966af819912492;hp=49074cee9c20d6a1bb9ff733394c7a966115d42e;hb=e5ffe9959c40a5ec6c4bca83a5a48070cae7fa5b;hpb=ba85c59d96d962dddaa0f1a2608ebea2e8ae694b diff --git a/src/search.cpp b/src/search.cpp index 49074cee..4cce6a91 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -409,9 +409,7 @@ bool think(Position& pos, const SearchLimits& limits, Move searchMoves[]) { read_evaluation_uci_options(pos.side_to_move()); Threads.read_uci_options(); - // Allocate pawn and material hash tables if number of active threads - // increased and set a new TT size if changed. - Threads.init_hash_tables(); + // Set a new TT size if changed TT.set_size(Options["Hash"].value()); if (Options["Clear Hash"].value()) @@ -2159,23 +2157,19 @@ void Thread::idle_loop(SplitPoint* sp) { || do_terminate || (Threads.use_sleeping_threads() && state == Thread::AVAILABLE)) { - assert(!sp || Threads.use_sleeping_threads()); - assert(threadID != 0 || Threads.use_sleeping_threads()); + assert((!sp && threadID) || Threads.use_sleeping_threads()); + + // Grab the lock to avoid races with Thread::wake_up() + lock_grab(&sleepLock); // Slave thread should exit as soon as do_terminate flag raises if (do_terminate) { assert(!sp); - state = Thread::TERMINATED; + lock_release(&sleepLock); return; } - if (state == Thread::INITIALIZING) - state = Thread::AVAILABLE; - - // Grab the lock to avoid races with Thread::wake_up() - lock_grab(&sleepLock); - // If we are master and all slaves have finished don't go to sleep if (sp && all_slaves_finished(sp)) {