]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Don't lock before check for termination
[stockfish] / src / search.cpp
index 0f2373cd28fd28838c1e79990c5d26349ae554a2..4408475341ac9deea60df927609c4bfd61e79ae0 100644 (file)
@@ -2158,17 +2158,16 @@ void Thread::idle_loop(SplitPoint* sp) {
       {
           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);
-              lock_release(&sleepLock);
               return;
           }
 
+          // 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))
           {