Revert "Fix random moves when time < 10ms"
authorMarco Costalba <mcostalba@gmail.com>
Thu, 12 Sep 2013 06:37:50 +0000 (08:37 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Thu, 12 Sep 2013 06:38:19 +0000 (08:38 +0200)
Possible regression.

No functional change.

src/search.cpp

index 4384b58dd5c89a21ab10d40ccb0de6c88525fc82..e29f54498e1ce3bfd322b493fc73e641a8c3d873 100644 (file)
@@ -242,11 +242,13 @@ void Search::think() {
   Threads.sleepWhileIdle = Options["Idle Threads Sleep"];
 
   // Set best timer interval to avoid lagging under time pressure. Timer is
-  // used to check for remaining available thinking time. Timer will be started
-  // at the end of first iteration to avoid returning with a random move.
+  // used to check for remaining available thinking time.
   Threads.timer->msec =
   Limits.use_time_management() ? std::min(100, std::max(TimeMgr.available_time() / 16, TimerResolution)) :
-                  Limits.nodes ? 2 * TimerResolution : 100;
+                  Limits.nodes ? 2 * TimerResolution
+                               : 100;
+
+  Threads.timer->notify_one(); // Wake up the recurring timer
 
   id_loop(RootPos); // Let's start searching !
 
@@ -400,10 +402,6 @@ namespace {
                 assert(alpha >= -VALUE_INFINITE && beta <= VALUE_INFINITE);
             }
 
-            // Wake up the recurring timer after first iteration is finished
-            if (depth == 1)
-                Threads.timer->notify_one();
-
             // Sort the PV lines searched so far and update the GUI
             std::stable_sort(RootMoves.begin(), RootMoves.begin() + PVIdx + 1);