diff --git a/ortools/sat/synchronization.cc b/ortools/sat/synchronization.cc index 12a63fbabd..a8bd0d7f9d 100644 --- a/ortools/sat/synchronization.cc +++ b/ortools/sat/synchronization.cc @@ -345,6 +345,14 @@ void SharedResponseManager::SetStatsFromModelInternal(Model* model) { bool SharedResponseManager::ProblemIsSolved() const { absl::MutexLock mutex_lock(&mutex_); + + // TODO(user): Currently this work because we do not allow enumerate all + // solution in multithread. + if (!model_proto_.has_objective() && + best_response_.status() == CpSolverStatus::FEASIBLE) { + return true; + } + return best_response_.status() == CpSolverStatus::OPTIMAL || best_response_.status() == CpSolverStatus::INFEASIBLE; }