Skip to content

Commit 844b960

Browse files
authored
Fix support for MOI.TimeLimitSec (#440)
1 parent 36f8d85 commit 844b960

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/MOI/MOI_wrapper.jl

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -527,13 +527,21 @@ function MOI.get(model::Optimizer, param::MOI.RawOptimizerAttribute)
527527
return
528528
end
529529

530-
function MOI.set(model::Optimizer, ::MOI.TimeLimitSec, limit::Real)
531-
MOI.set(model, MOI.RawOptimizerAttribute("CPXPARAM_TimeLimit"), limit)
530+
const _TIME_LIMIT_DEFAULT = 1.0e75
531+
532+
function MOI.set(
533+
model::Optimizer,
534+
::MOI.TimeLimitSec,
535+
limit::Union{Nothing,Real},
536+
)
537+
new_limit = something(limit, _TIME_LIMIT_DEFAULT)
538+
MOI.set(model, MOI.RawOptimizerAttribute("CPXPARAM_TimeLimit"), new_limit)
532539
return
533540
end
534541

535542
function MOI.get(model::Optimizer, ::MOI.TimeLimitSec)
536-
return MOI.get(model, MOI.RawOptimizerAttribute("CPXPARAM_TimeLimit"))
543+
limit = MOI.get(model, MOI.RawOptimizerAttribute("CPXPARAM_TimeLimit"))
544+
return limit === _TIME_LIMIT_DEFAULT ? nothing : limit
537545
end
538546

539547
MOI.supports_incremental_interface(::Optimizer) = true

0 commit comments

Comments
 (0)