@@ -77,20 +77,16 @@ function optimize_multiobjective!(algorithm::Dichotomy, model::Optimizer)
7777 error (" Only scalar or bi-objective problems supported." )
7878 end
7979 if MOI. output_dimension (model. f) == 1
80- if _time_limit_exceeded (model, start_time)
81- return MOI. TIME_LIMIT, nothing
82- elseif _check_interrupt ()
83- return MOI. INTERRUPTED, nothing
80+ if (ret = _check_premature_termination (model, start_time)) != = nothing
81+ return ret, nothing
8482 end
8583 status, solution = _solve_weighted_sum (model, algorithm, [1.0 ])
8684 return status, [solution]
8785 end
8886 solutions = Dict {Float64,SolutionPoint} ()
8987 for (i, w) in (1 => 1.0 , 2 => 0.0 )
90- if _time_limit_exceeded (model, start_time)
91- return MOI. TIME_LIMIT, nothing
92- elseif _check_interrupt ()
93- return MOI. INTERRUPTED, nothing
88+ if (ret = _check_premature_termination (model, start_time)) != = nothing
89+ return ret, nothing
9490 end
9591 status, solution = _solve_weighted_sum (model, algorithm, [w, 1.0 - w])
9692 if ! _is_scalar_status_optimal (status)
@@ -107,11 +103,8 @@ function optimize_multiobjective!(algorithm::Dichotomy, model::Optimizer)
107103 limit = MOI. get (algorithm, SolutionLimit ())
108104 status = MOI. OPTIMAL
109105 while length (queue) > 0 && length (solutions) < limit
110- if _time_limit_exceeded (model, start_time)
111- status = MOI. TIME_LIMIT
112- break
113- elseif _check_interrupt ()
114- status = MOI. INTERRUPTED
106+ if (ret = _check_premature_termination (model, start_time)) != = nothing
107+ status = ret
115108 break
116109 end
117110 (a, b) = popfirst! (queue)
0 commit comments