X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=b18ae3539d68239259f82332ea12621b7ec90fba;hp=a97c73485523eaf13002ddf3c6895b3f7c52d663;hb=dda7de17e74d7e80c58b5f86be5c78393ae65541;hpb=869c9244101ce5c6090fff5aeaee52142a572b53 diff --git a/src/search.cpp b/src/search.cpp index a97c7348..b18ae353 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -239,17 +239,16 @@ void Search::think() { // Set best timer interval to avoid lagging under time pressure. Timer is // used to check for remaining available thinking time. - if (Limits.use_time_management()) - Threads.set_timer(std::min(100, std::max(TimeMgr.available_time() / 16, - TimerResolution))); - else if (Limits.nodes) - Threads.set_timer(2 * TimerResolution); - else - Threads.set_timer(100); + Threads.timer_thread()->maxPly = /* Hack: we use maxPly to set timer interval */ + Limits.use_time_management() ? std::min(100, std::max(TimeMgr.available_time() / 16, TimerResolution)) : + Limits.nodes ? 2 * TimerResolution + : 100; + + Threads.timer_thread()->notify_one(); // Wake up the recurring timer id_loop(RootPos); // Let's start searching ! - Threads.set_timer(0); // Stop timer + Threads.timer_thread()->maxPly = 0; // Stop the timer // Main thread will go to sleep by itself to avoid a race with start_searching() for (size_t i = 0; i < Threads.size(); i++)