| 16 | double Control::elapsed() const { return timer_ ? timer_->read() : -1.0; } |
| 17 | |
| 18 | Int Control::interruptCheck(const Int ipm_iteration_count) const { |
| 19 | HighsTaskExecutor::getThisWorkerDeque()->checkInterrupt(); |
| 20 | |
| 21 | if (options_ && options_->time_limit >= 0 && |
| 22 | elapsed() > options_->time_limit) { |
| 23 | return kStatusTimeLimit; |
| 24 | } |
| 25 | |
| 26 | if (callback_) { |
| 27 | if (callback_->user_callback && callback_->active[kCallbackIpmInterrupt]) { |
| 28 | callback_->clearHighsCallbackOutput(); |
| 29 | callback_->data_out.ipm_iteration_count = ipm_iteration_count; |
| 30 | if (callback_->callbackAction(kCallbackIpmInterrupt, "IPM interrupt")) |
| 31 | return kStatusUserInterrupt; |
| 32 | } |
| 33 | } |
| 34 | |
| 35 | return 0; |
| 36 | } |
| 37 | |
| 38 | } // namespace hipo |
no test coverage detected