xbt_assert(std::isfinite(flops_amount), "flops_amount is not finite!");
msg_error_t status = MSG_OK;
+ if (flops_amount <= 0.0)
+ return MSG_OK;
set_used();
try {
*/
msg_error_t MSG_task_execute(msg_task_t task)
{
- return task->execute();
+ return task->is_parallel() ? MSG_parallel_task_execute(task) : task->execute();
}
/**
* @brief Sends a task on a mailbox.
xbt_assert((task != nullptr), "Cannot get information from a nullptr task");
if (task->compute) {
// Task in progress
- return task->compute->get_remaining_ratio();
+ if (task->is_parallel())
+ return task->compute->get_par_remaining_ratio();
+ else
+ return task->compute->get_seq_remaining_ratio();
} else {
// Task not started (flops_amount is > 0.0) or finished (flops_amount is set to 0.0)
return task->flops_amount > 0.0 ? 1.0 : 0.0;