mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-19 16:46:30 +08:00
Reset search time as early as possible
In particualr before to wake up main thread that could take some random time. Until we don't reset search time we are not able to correctly track the elapsed search time and this can be dangerous under extreme time pressure. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -28,7 +28,6 @@
|
||||
#include "book.h"
|
||||
#include "evaluate.h"
|
||||
#include "history.h"
|
||||
#include "misc.h"
|
||||
#include "movegen.h"
|
||||
#include "movepick.h"
|
||||
#include "search.h"
|
||||
@@ -43,6 +42,7 @@ namespace Search {
|
||||
LimitsType Limits;
|
||||
std::vector<RootMove> RootMoves;
|
||||
Position RootPosition;
|
||||
Time SearchTime;
|
||||
}
|
||||
|
||||
using std::string;
|
||||
@@ -118,7 +118,6 @@ namespace {
|
||||
|
||||
size_t MultiPV, UCIMultiPV, PVIdx;
|
||||
TimeManager TimeMgr;
|
||||
Time SearchTime;
|
||||
int BestMoveChanges;
|
||||
int SkillLevel;
|
||||
bool SkillLevelEnabled, Chess960;
|
||||
@@ -253,7 +252,6 @@ void Search::think() {
|
||||
Position& pos = RootPosition;
|
||||
Chess960 = pos.is_chess960();
|
||||
Eval::RootColor = pos.side_to_move();
|
||||
SearchTime.restart();
|
||||
TimeMgr.init(Limits, pos.startpos_ply_counter(), pos.side_to_move());
|
||||
TT.new_search();
|
||||
H.clear();
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <cstring>
|
||||
#include <vector>
|
||||
|
||||
#include "misc.h"
|
||||
#include "types.h"
|
||||
|
||||
class Position;
|
||||
@@ -94,6 +95,7 @@ extern volatile SignalsType Signals;
|
||||
extern LimitsType Limits;
|
||||
extern std::vector<RootMove> RootMoves;
|
||||
extern Position RootPosition;
|
||||
extern Time SearchTime;
|
||||
|
||||
extern void init();
|
||||
extern int64_t perft(Position& pos, Depth depth);
|
||||
|
||||
@@ -432,6 +432,8 @@ void ThreadsManager::start_searching(const Position& pos, const LimitsType& limi
|
||||
const std::set<Move>& searchMoves) {
|
||||
wait_for_search_finished();
|
||||
|
||||
SearchTime.restart(); // As early as possible
|
||||
|
||||
Signals.stopOnPonderhit = Signals.firstRootMove = false;
|
||||
Signals.stop = Signals.failedLowAtRoot = false;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user