/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-#include "xbt/log.h"
#include "simgrid/s4u/Actor.hpp"
#include "simgrid/s4u/Exec.hpp"
#include "src/kernel/activity/ExecImpl.hpp"
+#include "xbt/log.h"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_exec, s4u_activity, "S4U asynchronous executions");
Activity* Exec::start()
{
- pimpl_ = simcall_execution_start(nullptr, flops_amount_, 1. / priority_, 0., host_);
- boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(pimpl_)->set_bound(bound_);
+ pimpl_ = simcall_execution_start(name_, flops_amount_, 1. / priority_, bound_, host_);
state_ = State::STARTED;
return this;
}
return this;
}
+ExecPtr Exec::set_name(std::string name)
+{
+ xbt_assert(state_ == State::INITED, "Cannot change the name of an exec after its start");
+ name_ = name;
+ return this;
+}
+
+ExecPtr Exec::set_tracing_category(std::string category)
+{
+ xbt_assert(state_ == State::INITED, "Cannot change the name of an exec after its start");
+ if (category.empty())
+ return this;
+
+ simgrid::simix::simcall([this, category] {
+ boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(pimpl_)->set_category(category);
+ });
+ return this;
+}
+
/** @brief Retrieve the host on which this activity takes place. */
Host* Exec::get_host()
{