Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Typed template for Extendable::get_data.
[simgrid.git] / src / kernel / actor / ActorImpl.hpp
index 5ce712f78a0295f392c293133c063843e254065d..ce54dfcf91cedd39f9c99b6d0a338a1aee133576 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2007-2022. The SimGrid Team. All rights reserved.          */
 
 /* 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. */
@@ -55,6 +55,8 @@ public:
   aid_t get_ppid() const { return ppid_; }
   void set_ppid(aid_t ppid) { ppid_ = ppid; }
   bool is_daemon() const { return daemon_; } /** Whether this actor has been daemonized */
+  bool is_maestro() const; /** Whether this actor is actually maestro (cheap call but may segfault before actor creation
+                              / after terminaison) */
   bool has_to_auto_restart() const { return auto_restart_; }
   void set_auto_restart(bool autorestart) { auto_restart_ = autorestart; }
   void set_stacksize(unsigned stacksize) { stacksize_ = stacksize; }
@@ -75,7 +77,7 @@ public:
       std::make_shared<std::vector<std::function<void(bool)>>>();
 
   std::function<void()> code_;
-  std::shared_ptr<timer::Timer> kill_timer_ = nullptr;
+  timer::Timer* kill_timer_ = nullptr;
 
 private:
   /* Refcounting */
@@ -179,7 +181,7 @@ public:
   explicit ProcessArg(s4u::Host* host, ActorImpl* actor)
       : name(actor->get_name())
       , code(actor->code_)
-      , data(actor->get_ciface()->get_data())
+      , data(actor->get_ciface()->get_data<void>())
       , host(host)
       , kill_time(actor->get_kill_time())
       , auto_restart(actor->has_to_auto_restart())