Retire piece.cpp
[stockfish] / src / application.cpp
index 2e6adcaca6954fe547e053e59ac3510be954c740..08384716ccf025db9eb867297e07bacdc108c841 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-2009 Marco Costalba
+  Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
 
   Stockfish is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -27,7 +27,6 @@
 #include "endgame.h"
 #include "evaluate.h"
 #include "material.h"
-#include "mersenne.h"
 #include "misc.h"
 #include "movepick.h"
 #include "position.h"
@@ -41,7 +40,6 @@
 
 Application::Application() {
 
-    init_mersenne();
     init_direction_table();
     init_bitboards();
     init_uci_options();
@@ -49,17 +47,8 @@ Application::Application() {
     Position::init_piece_square_tables();
     init_eval(1);
     init_bitbases();
+    init_search();
     init_threads();
-
-    // Make random number generation less deterministic, for book moves
-    for (int i = abs(get_system_time() % 10000); i > 0; i--)
-        genrand_int32();
-}
-
-Application::~Application() {
-
-  stop_threads();
-  quit_eval();
 }
 
 void Application::initialize() {
@@ -69,7 +58,15 @@ void Application::initialize() {
   static Application singleton;
 }
 
+void Application::free_resources() {
+
+  // Warning, following functions reference global objects that
+  // must be still alive when free_resources() is called.
+  exit_threads();
+  quit_eval();
+}
+
 void Application::exit_with_failure() {
 
-  exit(EXIT_FAILURE); // d'tor will be called automatically
+  exit(EXIT_FAILURE);
 }