mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-24 19:16:49 +08:00
The timer will be fired asynchronously to handle time management flags, while other threads are searching. This implementation uses a thread waiting on a timed condition variable instead of real timers. This approach allow to reduce platform dependant code to a minimum and also is the most portable given that timers libraries are very different among platforms and also the best ones are not compatible with olds Windows. Also retire the now unused polling code. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
50 lines
1.6 KiB
C++
50 lines
1.6 KiB
C++
/*
|
|
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
|
|
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
|
|
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
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
Stockfish is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#if !defined(MISC_H_INCLUDED)
|
|
#define MISC_H_INCLUDED
|
|
|
|
#include <fstream>
|
|
#include <string>
|
|
|
|
#include "lock.h"
|
|
#include "types.h"
|
|
|
|
extern const std::string engine_name();
|
|
extern const std::string engine_authors();
|
|
extern int get_system_time();
|
|
extern int cpu_count();
|
|
extern void timed_wait(WaitCondition*, Lock*, int);
|
|
extern void prefetch(char* addr);
|
|
|
|
extern void dbg_hit_on(bool b);
|
|
extern void dbg_hit_on_c(bool c, bool b);
|
|
extern void dbg_before();
|
|
extern void dbg_after();
|
|
extern void dbg_mean_of(int v);
|
|
extern void dbg_print_hit_rate();
|
|
extern void dbg_print_mean();
|
|
|
|
struct Log : public std::ofstream {
|
|
Log(const std::string& f = "log.txt") : std::ofstream(f.c_str(), std::ios::out | std::ios::app) {}
|
|
~Log() { if (is_open()) close(); }
|
|
};
|
|
|
|
#endif // !defined(MISC_H_INCLUDED)
|