X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/247fba2eee61dc2a8e06c6f1339437dcb4481c3b..08e94eb0482589e4b287cbea301b84daf52635bd:/src/simix/ActorImpl.hpp diff --git a/src/simix/ActorImpl.hpp b/src/simix/ActorImpl.hpp index 561d1e8a63..a0c178d4d0 100644 --- a/src/simix/ActorImpl.hpp +++ b/src/simix/ActorImpl.hpp @@ -15,7 +15,7 @@ #include struct s_smx_process_exit_fun_t { - std::function fun; + std::function fun; void *arg; }; @@ -23,7 +23,7 @@ namespace simgrid { namespace kernel { namespace actor { -class ActorImpl : public surf::PropertyHolder { +class XBT_PUBLIC ActorImpl : public surf::PropertyHolder { s4u::Host* host_ = nullptr; /* the host on which the actor is running */ void* userdata_ = nullptr; /* kept for compatibility, it should be replaced with moddata */ aid_t pid_ = 0; @@ -34,6 +34,8 @@ class ActorImpl : public surf::PropertyHolder { public: xbt::string name_; ActorImpl(xbt::string name, s4u::Host* host); + ActorImpl(const ActorImpl&) = delete; + ActorImpl& operator=(const ActorImpl&) = delete; ~ActorImpl(); double get_kill_time(); @@ -70,7 +72,7 @@ public: std::vector on_exit; /* list of functions executed when the process dies */ std::function code; - smx_timer_t kill_timer = nullptr; + simix::Timer* kill_timer = nullptr; private: /* Refcounting */ @@ -105,6 +107,9 @@ public: static ActorImplPtr create(std::string name, simix::ActorCode code, void* data, s4u::Host* host, std::unordered_map* properties, ActorImpl* parent_actor); + static ActorImplPtr attach(std::string name, void* data, s4u::Host* host, + std::unordered_map* properties); + static void detach(); void cleanup(); void exit(); void kill(ActorImpl* actor);