Force time check on TB probe in search.
authorJoost VandeVondele <Joost.VandeVondele@gmail.com>
Mon, 4 Jun 2018 08:31:25 +0000 (10:31 +0200)
committerStéphane Nicolet <cassio@free.fr>
Tue, 20 Nov 2018 07:00:19 +0000 (08:00 +0100)
commit4b88bea4fcd5c4cb931610f97460615dd71ff35b
tree7253ae71a2f0a05b04885d2b6759d669d232ddee
parent39257509452a81db28538462e6581b05d1a4b7fb
Force time check on TB probe in search.

Because of aggressive time management and optimistic assumptions
about move overhead, it's still very easy to get Stockfish to forfeit
on time when we hit an endgame and have Syzygy EGTB on a spinning
drive. The latency from serving a few thousand EGTB probes (~10ms each),
of which there can currently be up to 4000 outstanding before a time
check, will easily overwhelm the default Move Overhead of 30ms.

This problem was first raised by Gian-Carlo Pascutto and some solutions
and improvements were discussed in the following pull requests:
https://github.com/official-stockfish/Stockfish/pull/1471
https://github.com/official-stockfish/Stockfish/pull/1623
https://github.com/official-stockfish/Stockfish/pull/1783

This patch is a minimal change proposed by Marco Costalba to lower
the impact of the bug. We now force a check of the clock right after
each tablebase read.

No functional change.
src/search.cpp