/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
- Copyright (C) 2004-2020 The Stockfish developers (see AUTHORS file)
+ Copyright (C) 2004-2022 The Stockfish developers (see AUTHORS file)
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "syzygy/tbprobe.h"
#include "tt.h"
+namespace Stockfish {
+
ThreadPool Threads; // Global object
counterMoves.fill(MOVE_NONE);
mainHistory.fill(0);
- lowPlyHistory.fill(0);
captureHistory.fill(0);
for (bool inCheck : { false, true })
{
for (auto& to : continuationHistory[inCheck][c])
for (auto& h : to)
- h->fill(0);
+ h->fill(-71);
continuationHistory[inCheck][c][NO_PIECE][0]->fill(Search::CounterMovePruneThreshold - 1);
}
}
void ThreadPool::set(size_t requested) {
- if (size() > 0) { // destroy any existing thread(s)
+ if (size() > 0) // destroy any existing thread(s)
+ {
main()->wait_for_search_finished();
while (size() > 0)
delete back(), pop_back();
}
- if (requested > 0) { // create new thread(s)
+ if (requested > 0) // create new thread(s)
+ {
push_back(new MainThread(0));
while (size() < requested)
main()->callsCnt = 0;
main()->bestPreviousScore = VALUE_INFINITE;
+ main()->bestPreviousAverageScore = VALUE_INFINITE;
main()->previousTimeReduction = 1.0;
}
if (th != front())
th->wait_for_search_finished();
}
+
+} // namespace Stockfish