From 22e294e044ef60d40b94f24393d3dd18bc0bff71 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Tue, 27 Mar 2012 18:47:41 +0100 Subject: [PATCH] Set do_sleep out of lock protection Fixes a not so rare crash (once every 100 games) newly introduced. Unfortunatly I am still not able to figure out why :-( Signed-off-by: Marco Costalba --- src/thread.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/thread.cpp b/src/thread.cpp index 10f432bd..6a5454fa 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -137,7 +137,6 @@ void Thread::main_loop() { void Thread::wake_up() { lock_grab(sleepLock); - do_sleep = false; cond_signal(sleepCond); lock_release(sleepLock); } @@ -257,6 +256,7 @@ void ThreadsManager::wake_up() const { for (int i = 0; i < size(); i++) { threads[i]->maxPly = 0; + threads[i]->do_sleep = false; if (!useSleepingThreads) threads[i]->wake_up(); @@ -442,5 +442,6 @@ void ThreadsManager::start_searching(const Position& pos, const LimitsType& limi if (searchMoves.empty() || searchMoves.count(ml.move())) RootMoves.push_back(RootMove(ml.move())); + threads[0]->do_sleep = false; threads[0]->wake_up(); } -- 2.39.2