1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-07-11 11:39:15 +00:00

Reduce scope of variables

Small cleanup TranspositionTable:clear().

Closes https://github.com/official-stockfish/Stockfish/pull/1659

No functional change.
This commit is contained in:
Joost VandeVondele 2018-07-04 00:48:20 +02:00 committed by Stéphane Nicolet
parent a781535168
commit 8c4f0ffa1d

View file

@ -53,24 +53,27 @@ void TranspositionTable::resize(size_t mbSize) {
}
/// TranspositionTable::clear() overwrites the entire transposition table
/// with zeros. It is called whenever the table is resized, or when the
/// user asks the program to clear the table (from the UCI interface).
/// It starts as many threads as allowed by the Threads option.
/// TranspositionTable::clear() initializes the entire transposition table to zero,
// in a multi-threaded way.
void TranspositionTable::clear() {
const size_t stride = clusterCount / Options["Threads"];
std::vector<std::thread> threads;
for (size_t idx = 0; idx < Options["Threads"]; idx++)
{
const size_t start = stride * idx,
len = idx != Options["Threads"] - 1 ?
stride :
clusterCount - start;
threads.push_back(std::thread([this, idx, start, len]() {
threads.push_back(std::thread([this, idx]() {
// Thread binding gives faster search on systems with a first-touch policy
if (Options["Threads"] >= 8)
WinProcGroup::bindThisThread(idx);
// Each thread will zero its part of the hash table
const size_t stride = clusterCount / Options["Threads"],
start = stride * idx,
len = idx != Options["Threads"] - 1 ?
stride : clusterCount - start;
std::memset(&table[start], 0, len * sizeof(Cluster));
}));
}