ActorPtr Actor::createActor(const char* name, s4u::Host* host, std::function<void()> code)
{
- simgrid::simix::ActorImpl* actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
+ simgrid::kernel::actor::ActorImpl* actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
return actor->iface();
}
{
simgrid::simix::ActorCodeFactory& factory = SIMIX_get_actor_code_factory(function);
simgrid::simix::ActorCode code = factory(std::move(args));
- simgrid::simix::ActorImpl* actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
+ simgrid::kernel::actor::ActorImpl* actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
return actor->iface();
}
if (TRACE_actor_is_enabled()) {
// create new container on the new_host location
- new simgrid::instr::Container(instr_pid(this), "ACTOR", simgrid::instr::Container::byName(new_host->getName()));
-
+ simgrid::instr::Container::byName(new_host->getName())->createChild(instr_pid(this), "ACTOR");
// end link
link->endEvent(simgrid::instr::Container::byName(instr_pid(this)), "M", key);
}
{
SIMIX_process_self()->iface()->migrate(new_host);
}
+
} // namespace this_actor
} // namespace s4u
} // namespace simgrid
/* **************************** Public C interface *************************** */
-SG_BEGIN_DECL()
+
/** \ingroup m_actor_management
* \brief Returns the process ID of \a actor.
*
actor->daemonize();
}
-/** \ingroup m_process_management
+/** \ingroup m_actor_management
* \brief Migrates an actor to another location.
*
* This function changes the value of the #sg_host_t on which \a actor is running.
process->migrate(host);
}
-SG_END_DECL()
+/** \ingroup m_actor_management
+* \brief Wait for the completion of a #sg_actor_t.
+*
+* \param actor the actor to wait for
+* \param timeout wait until the actor is over, or the timeout expires
+*/
+void sg_actor_join(sg_actor_t actor, double timeout)
+{
+ actor->join(timeout);
+}
+
+void sg_actor_kill(sg_actor_t actor)
+{
+ actor->kill();
+}
+
+/** \ingroup m_actor_management
+ * \brief Set the kill time of an actor.
+ *
+ * \param actor an actor
+ * \param kill_time the time when the actor is killed.
+ */
+void sg_actor_set_kill_time(sg_actor_t actor, double kill_time)
+{
+ actor->setKillTime(kill_time);
+}