]> git.sesse.net Git - stockfish/blobdiff - src/book.cpp
Simplify locking in sp_search and sp_search_pv
[stockfish] / src / book.cpp
index c69eab739b7dfcae8284db5c417225ad466a831a..d825477f6ab9bbb82d909f4568ba9272fc430e90 100644 (file)
@@ -1,7 +1,7 @@
 /*
   Stockfish, a UCI chess playing engine derived from Glaurung 2.1
   Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
-  Copyright (C) 2008 Marco Costalba
+  Copyright (C) 2008-2009 Marco Costalba
 
   Stockfish is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -372,7 +372,7 @@ void Book::open(const string& fName) {
   if (!good())
   {
       cerr << "Failed to open book file " << fileName << endl;
-      exit(EXIT_FAILURE);
+      Application::exit_with_failure();
   }
 }
 
@@ -429,11 +429,11 @@ Move Book::get_move(const Position& pos) {
   if (!bookMove)
       return MOVE_NONE;
 
-  MoveStack moves[256];
-  int n = generate_legal_moves(pos, moves);
-  for (int j = 0; j < n; j++)
-      if ((int(moves[j].move) & 07777) == bookMove)
-          return moves[j].move;
+  MoveStack mlist[256];
+  MoveStack* last = generate_moves(pos, mlist);
+  for (MoveStack* cur = mlist; cur != last; cur++)
+      if ((int(cur->move) & 07777) == bookMove)
+          return cur->move;
 
   return MOVE_NONE;
 }
@@ -489,7 +489,7 @@ void Book::read_entry(BookEntry& entry, int idx) {
   if (!good())
   {
       cerr << "Failed to read book entry at index " << idx << endl;
-      exit(EXIT_FAILURE);
+      Application::exit_with_failure();
   }
 }