diff --git a/src/search.rs b/src/search.rs index 984fc3b71..79d283e54 100644 --- a/src/search.rs +++ b/src/search.rs @@ -269,7 +269,10 @@ pub fn start(td: &mut ThreadData, report: Report, thread_count: usize) { td.shared.soft_stop_votes.fetch_sub(1, Ordering::AcqRel); } - if td.shared.status.get() == Status::STOPPED { + if td.shared.status.get() == Status::STOPPED + || (!matches!(td.time_manager.limits(), Limits::Infinite) + && (td.root_moves[0].score == mated_in(2) || td.root_moves[td.multi_pv - 1].score >= mate_in(3))) + { break; } }