]> git.sesse.net Git - stockfish/blobdiff - src/benchmark.cpp
Correctly handle handover of setup states
[stockfish] / src / benchmark.cpp
index b0b9e16b7881da1783326d72825a376998e99020..9dc103ed1992681b0fdef8252d3cc36cd73cb140 100644 (file)
@@ -110,6 +110,7 @@ void benchmark(const Position& current, istream& is) {
   }
 
   int64_t nodes = 0;
+  Search::StateStackPtr st;
   Time time = Time::current_time();
 
   for (size_t i = 0; i < fens.size(); i++)
@@ -120,22 +121,22 @@ void benchmark(const Position& current, istream& is) {
 
       if (limitType == "perft")
       {
-          int64_t cnt = Search::perft(pos, limits.depth * ONE_PLY);
+          size_t cnt = Search::perft(pos, limits.depth * ONE_PLY);
           cerr << "\nPerft " << limits.depth  << " leaf nodes: " << cnt << endl;
           nodes += cnt;
       }
       else
       {
-          Threads.start_searching(pos, limits, vector<Move>());
+          Threads.start_searching(pos, limits, vector<Move>(), st);
           Threads.wait_for_search_finished();
           nodes += Search::RootPosition.nodes_searched();
       }
   }
 
-  int e = time.elapsed();
+  int e = time.elapsed() + 1; // Assure positive to avoid a 'divide by zero'
 
   cerr << "\n==========================="
        << "\nTotal time (ms) : " << e
        << "\nNodes searched  : " << nodes
-       << "\nNodes/second    : " << int(nodes / (e / 1000.0)) << endl;
+       << "\nNodes/second    : " << 1000 * nodes / e << endl;
 }