1
0
Fork 0

Start a TT resize only after search finished.

As noticed in the forum, a crash in extract_ponder_from_tt could result
if hash size is set before the ponder move is printed. While it is arguably
a GUI issue (but it got me on the cli), it is easy to avoid this issue.

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

No functional change.
pull/1830/head
Joost VandeVondele 2018-12-08 23:03:42 +01:00 committed by Stéphane Nicolet
parent 4f3804f3f3
commit fda0161e3a
2 changed files with 6 additions and 3 deletions

View File

@ -136,10 +136,10 @@ void ThreadPool::set(size_t requested) {
while (size() < requested)
push_back(new Thread(size()));
clear();
}
// Reallocate the hash with the new threadpool size
TT.resize(Options["Hash"]);
// Reallocate the hash with the new threadpool size
TT.resize(Options["Hash"]);
}
}
/// ThreadPool::clear() sets threadPool data to initial values.

View File

@ -24,6 +24,7 @@
#include "bitboard.h"
#include "misc.h"
#include "thread.h"
#include "tt.h"
#include "uci.h"
@ -58,6 +59,8 @@ void TTEntry::save(Key k, Value v, Bound b, Depth d, Move m, Value ev) {
void TranspositionTable::resize(size_t mbSize) {
Threads.main()->wait_for_search_finished();
clusterCount = mbSize * 1024 * 1024 / sizeof(Cluster);
free(mem);