min = now + time_to_completion; // when the task will complete if nothing changes
}
- if ((action->get_max_duration() > NO_MAX_DURATION) &&
+ if ((action->get_max_duration() != NO_MAX_DURATION) &&
(min <= -1 || action->get_start_time() + action->get_max_duration() < min)) {
// when the task will complete anyway because of the deadline if any
min = action->get_start_time() + action->get_max_duration();
// FIXME: sleep variables should not consume 1.0 in System::expand()
action->set_max_duration(duration);
action->suspended_ = kernel::resource::Action::SuspendStates::sleeping;
- if (duration < 0) // NO_MAX_DURATION
+ if (duration == NO_MAX_DURATION)
action->set_state(simgrid::kernel::resource::Action::State::IGNORED);
get_model()->get_maxmin_system()->update_variable_weight(action->get_variable(), 0.0);
action.set_finish_time(speed_integrated_trace_->solve(now, total_area));
/* verify which event will happen before (max_duration or finish time) */
- if (action.get_max_duration() > NO_MAX_DURATION &&
+ if (action.get_max_duration() != NO_MAX_DURATION &&
action.get_start_time() + action.get_max_duration() < action.get_finish_time())
min_finish = action.get_start_time() + action.get_max_duration();
else
min_finish = action.get_finish_time();
} else {
/* put the max duration time on heap */
- if (action.get_max_duration() > NO_MAX_DURATION)
+ if (action.get_max_duration() != NO_MAX_DURATION)
min_finish = action.get_start_time() + action.get_max_duration();
}
/* add in action heap */
- if (min_finish > NO_MAX_DURATION)
+ if (min_finish != NO_MAX_DURATION)
get_model()->get_action_heap().update(&action, min_finish, kernel::resource::ActionHeap::Type::unset);
else
get_model()->get_action_heap().remove(&action);
action->set_max_duration(duration);
action->suspended_ = kernel::resource::Action::SuspendStates::sleeping;
- if (duration < 0) // NO_MAX_DURATION
+ if (duration == NO_MAX_DURATION)
action->set_state(simgrid::kernel::resource::Action::State::IGNORED);
action_set_.push_back(*action);
}
action.update_remains(action.get_variable()->get_value() * delta);
- if (action.get_max_duration() > NO_MAX_DURATION)
+ if (action.get_max_duration() != NO_MAX_DURATION)
action.update_max_duration(delta);
if (((action.get_remains() <= 0) && (action.get_variable()->get_weight() > 0)) ||
- ((action.get_max_duration() > NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
+ ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
action.finish(Action::State::FINISHED);
}
}
*/
if (((action.get_remains() <= 0) && (action.get_variable()->get_weight() > 0)) ||
- ((action.get_max_duration() > NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
+ ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
action.finish(kernel::resource::Action::State::FINISHED);
} else {
/* Need to check that none of the model has failed */
action.update_max_duration(delta);
if (((action.get_remains_no_update() <= 0) && (action.get_variable()->get_weight() > 0)) ||
- ((action.get_max_duration() > NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
+ ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
action.finish(kernel::resource::Action::State::FINISHED);
}
}