void ThreadPool::exit() {
delete_thread(timer); // As first because check_time() accesses threads data
+ timer = nullptr;
for (Thread* th : *this)
delete_thread(th);
+
+ clear(); // Get rid of stale pointers
}
assert(requested > 0);
- // If zero (default) then set best minimum split depth automatically
- if (!minimumSplitDepth)
- minimumSplitDepth = requested < 8 ? 4 * ONE_PLY : 7 * ONE_PLY;
-
while (size() < requested)
push_back(new_thread<Thread>());
StateStackPtr& states) {
main()->join();
- SearchTime = now(); // As early as possible
-
Signals.stopOnPonderhit = Signals.firstRootMove = false;
Signals.stop = Signals.failedLowAtRoot = false;