diff --git a/src/MOI/MOI_callbacks.jl b/src/MOI/MOI_callbacks.jl index ec77d7cb..19b9ea52 100644 --- a/src/MOI/MOI_callbacks.jl +++ b/src/MOI/MOI_callbacks.jl @@ -55,6 +55,9 @@ function MOI.set(model::Optimizer, ::CallbackFunction, f::Function) cb = @cfunction(_cboptnode, Cint, (XPRSprob, Ptr{Cvoid}, Ptr{Cint})) ret = XPRSaddcboptnode(model, cb, model.callback_data, 0) _check(model, ret) + # Disable calling the callback from anything other than the main thread + ret = XPRSsetintcontrol(model, XPRS_CALLBACKFROMMAINTHREAD, 1) + _check(model, ret) return end diff --git a/src/MOI/MOI_wrapper.jl b/src/MOI/MOI_wrapper.jl index fc3b391e..ae602096 100644 --- a/src/MOI/MOI_wrapper.jl +++ b/src/MOI/MOI_wrapper.jl @@ -348,13 +348,6 @@ function MOI.empty!(model::Optimizer) MOI.set(model, name, value) end MOI.set(model, MOI.RawOptimizerAttribute("MPSNAMELENGTH"), 64) - callback_main_thread = if get_version() >= v"46" - "CALLBACKFROMMAINTHREAD" - else - # Kept for compatibility with older versions - "CALLBACKFROMMASTERTHREAD" - end - MOI.set(model, MOI.RawOptimizerAttribute(callback_main_thread), 1) MOI.set( model, MOI.RawOptimizerAttribute("XPRESS_WARNING_WINDOWS"),