]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Retire ThreadsManager::init_hash_tables()
[stockfish] / src / search.cpp
index 49074cee9c20d6a1bb9ff733394c7a966115d42e..4cce6a9171de9139d8e51e717d966af819912492 100644 (file)
@@ -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<int>());
 
   if (Options["Clear Hash"].value<bool>())
@@ -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))
           {