ActorPtr Actor::createActor(const char* name, s4u::Host* host, std::function<void()> code)
{
- smx_actor_t actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
+ simgrid::simix::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));
- smx_actor_t actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
+ simgrid::simix::ActorImpl* actor = simcall_process_create(name, std::move(code), nullptr, host, nullptr);
return actor->iface();
}
simcall_process_killall(resetPid);
}
+/** Retrieve the property value (or nullptr if not set) */
+const char* Actor::property(const char* key)
+{
+ return (char*)xbt_dict_get_or_null(simcall_process_get_properties(pimpl_), key);
+}
+void Actor::setProperty(const char* key, const char* value)
+{
+ simgrid::simix::kernelImmediate([this, key, value] {
+ xbt_dict_set(simcall_process_get_properties(pimpl_), key, (char*)value, (void_f_pvoid_t) nullptr);
+ });
+}
+
// ***** this_actor *****
namespace this_actor {