/*
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-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
init_uci_options();
Position::init_zobrist();
Position::init_piece_square_tables();
- MovePicker::init_phase_table();
init_eval(1);
init_bitbases();
+ init_search();
init_threads();
// Make random number generation less deterministic, for book moves
genrand_int32();
}
-Application::~Application() {
-
- stop_threads();
- quit_eval();
-}
-
void Application::initialize() {
- instance();
+ // A static Application object is allocated
+ // once only when this function is called.
+ static Application singleton;
}
-Application& Application::instance() {
+void Application::free_resources() {
- static Application singleton;
- return singleton;
+ // 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);
}