X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1485fe26372c540b07a9a86a5d08155d06d77e81..94f442070bfed66af7b861d4a432c9df6a1cdad2:/src/simix/ActorImpl.hpp diff --git a/src/simix/ActorImpl.hpp b/src/simix/ActorImpl.hpp index 1a3c47bd0c..babf410fed 100644 --- a/src/simix/ActorImpl.hpp +++ b/src/simix/ActorImpl.hpp @@ -101,6 +101,8 @@ public: smx_activity_t sleep(double duration); void set_user_data(void* data) { userdata_ = data; } void* get_user_data() { return userdata_; } + /** Ask the actor to throw an exception right away */ + void throw_exception(std::exception_ptr e); }; class ProcessArg { @@ -112,6 +114,7 @@ public: double kill_time = 0.0; std::shared_ptr> properties = nullptr; bool auto_restart = false; + bool daemon_ = false; ProcessArg() = default; explicit ProcessArg(std::string name, std::function code, void* data, s4u::Host* host, double kill_time, @@ -133,6 +136,7 @@ public: , host(host) , kill_time(SIMIX_timer_get_date(actor->kill_timer)) , auto_restart(actor->auto_restart_) + , daemon_(actor->is_daemon()) { properties.reset(actor->get_properties(), [](decltype(actor->get_properties())) {}); } @@ -150,7 +154,7 @@ XBT_PUBLIC void create_maestro(std::function code); typedef simgrid::kernel::actor::ActorImpl* smx_actor_t; -XBT_PRIVATE smx_actor_t SIMIX_process_create(const char* name, std::function code, void* data, sg_host_t host, +XBT_PRIVATE smx_actor_t SIMIX_process_create(std::string name, std::function code, void* data, sg_host_t host, std::unordered_map* properties, smx_actor_t parent_process);