X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5fdfd655eb2532734bad27bcfd026c0ee97486da..c2ee13e39edc041a79cce8d08fd58d0d45c3502b:/src/msg/msg_gos.cpp diff --git a/src/msg/msg_gos.cpp b/src/msg/msg_gos.cpp index c173b4b8d2..afae6c33fd 100644 --- a/src/msg/msg_gos.cpp +++ b/src/msg/msg_gos.cpp @@ -64,19 +64,21 @@ msg_error_t MSG_parallel_task_execute_with_timeout(msg_task_t task, double timeo if (simdata->host_nb > 0) { simdata->compute = boost::static_pointer_cast(simcall_execution_parallel_start( - task->name ?: "", simdata->host_nb, simdata->host_list, simdata->flops_parallel_amount, - simdata->bytes_parallel_amount, -1.0, timeout)); + std::move(task->simdata->get_name()), simdata->host_nb, simdata->host_list, + simdata->flops_parallel_amount, simdata->bytes_parallel_amount, -1.0, timeout)); XBT_DEBUG("Parallel execution action created: %p", simdata->compute.get()); - if (task->category != nullptr) - simgrid::simix::simcall([task] { task->simdata->compute->set_category(task->category); }); + if (task->simdata->has_tracing_category()) + simgrid::simix::simcall( + [task] { task->simdata->compute->set_category(std::move(task->simdata->get_tracing_category())); }); } else { sg_host_t host = MSG_process_get_host(MSG_process_self()); simdata->compute = simgrid::simix::simcall([task, host] { - return simgrid::kernel::activity::ExecImplPtr( - new simgrid::kernel::activity::ExecImpl(task->name ?: "", task->category ?: "", host)); + return simgrid::kernel::activity::ExecImplPtr(new simgrid::kernel::activity::ExecImpl( + std::move(task->simdata->get_name()), std::move(task->simdata->get_tracing_category()), host)); }); /* checking for infinite values */ xbt_assert(std::isfinite(simdata->flops_amount), "flops_amount is not finite!"); + xbt_assert(std::isfinite(simdata->priority), "priority is not finite!"); simdata->compute->start(simdata->flops_amount, simdata->priority, simdata->bound); } @@ -85,7 +87,7 @@ msg_error_t MSG_parallel_task_execute_with_timeout(msg_task_t task, double timeo simdata->set_not_used(); - XBT_DEBUG("Execution task '%s' finished in state %d", task->name, (int)comp_state); + XBT_DEBUG("Execution task '%s' finished in state %d", task->simdata->get_cname(), (int)comp_state); } catch (simgrid::HostFailureException& e) { status = MSG_HOST_FAILURE; } catch (simgrid::TimeoutError& e) { @@ -250,7 +252,7 @@ msg_error_t MSG_task_receive_ext_bounded(msg_task_t * task, const char *alias, d ->set_rate(rate) ->wait_for(timeout); *task = static_cast(payload); - XBT_DEBUG("Got task %s from %s", (*task)->name, alias); + XBT_DEBUG("Got task %s from %s", (*task)->simdata->get_cname(), alias); (*task)->simdata->set_not_used(); } catch (simgrid::HostFailureException& e) { ret = MSG_HOST_FAILURE; @@ -302,8 +304,9 @@ static inline msg_comm_t MSG_task_isend_internal(msg_task_t task, const char* al msg_comm = new simgrid::msg::Comm(task, nullptr, comm); } - if (TRACE_is_enabled() && task->category != nullptr) - simgrid::simix::simcall([comm, task] { comm->get_impl()->set_category(task->category); }); + if (TRACE_is_enabled() && task->simdata->has_tracing_category()) + simgrid::simix::simcall( + [comm, task] { comm->get_impl()->set_category(std::move(task->simdata->get_tracing_category())); }); return msg_comm; } @@ -739,8 +742,9 @@ msg_error_t MSG_task_send_with_timeout(msg_task_t task, const char *alias, doubl simgrid::s4u::Mailbox::by_name(alias)->put_init(task, t_simdata->bytes_amount)->set_rate(t_simdata->rate); t_simdata->comm = comm; comm->start(); - if (TRACE_is_enabled() && task->category != nullptr) - simgrid::simix::simcall([comm, task] { comm->get_impl()->set_category(task->category); }); + if (TRACE_is_enabled() && task->simdata->has_tracing_category()) + simgrid::simix::simcall( + [comm, task] { comm->get_impl()->set_category(std::move(task->simdata->get_tracing_category())); }); comm->wait_for(timeout); } catch (simgrid::TimeoutError& e) { ret = MSG_TIMEOUT; @@ -815,17 +819,18 @@ int MSG_task_listen_from(const char *alias) */ void MSG_task_set_category (msg_task_t task, const char *category) { - xbt_assert(task->category == nullptr, "Task %p(%s) already has a category (%s).", task, task->name, task->category); + xbt_assert(not task->simdata->has_tracing_category(), "Task %p(%s) already has a category (%s).", task, + task->simdata->get_cname(), task->simdata->get_tracing_category().c_str()); // if user provides a nullptr category, task is no longer traced if (category == nullptr) { - xbt_free(task->category); - task->category = nullptr; - XBT_DEBUG("MSG task %p(%s), category removed", task, task->name); + task->simdata->set_tracing_category(""); + XBT_DEBUG("MSG task %p(%s), category removed", task, task->simdata->get_cname()); } else { // set task category - task->category = xbt_strdup(category); - XBT_DEBUG("MSG task %p(%s), category %s", task, task->name, task->category); + task->simdata->set_tracing_category(category); + XBT_DEBUG("MSG task %p(%s), category %s", task, task->simdata->get_cname(), + task->simdata->get_tracing_category().c_str()); } } @@ -840,5 +845,5 @@ void MSG_task_set_category (msg_task_t task, const char *category) */ const char *MSG_task_get_category (msg_task_t task) { - return task->category; + return task->simdata->get_tracing_category().c_str(); }