Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI: redesign the end of actors/ranks' lifetime
[simgrid.git] / src / smpi / include / smpi_actor.hpp
index 067fe28..6528fc9 100644 (file)
@@ -15,10 +15,9 @@ namespace simgrid {
 namespace smpi {
 
 class ActorExt {
-private:
   double simulated_ = 0 /* Used to time with simulated_start/elapsed */;
-  s4u::MailboxPtr mailbox_;
-  s4u::MailboxPtr mailbox_small_;
+  s4u::Mailbox* mailbox_;
+  s4u::Mailbox* mailbox_small_;
   s4u::MutexPtr mailboxes_mutex_;
   xbt_os_timer_t timer_;
   MPI_Comm comm_self_   = MPI_COMM_NULL;
@@ -28,22 +27,27 @@ private:
   int sampling_ = 0; /* inside an SMPI_SAMPLE_ block? */
   std::string instance_id_;
   bool replaying_ = false; /* is the process replaying a trace */
-  s4u::Barrier* finalization_barrier_;
   smpi_trace_call_location_t trace_call_loc_;
   s4u::ActorPtr actor_                           = nullptr;
   smpi_privatization_region_t privatized_region_ = nullptr;
-  int optind                                     = 0; /*for getopt replacement */
+#ifdef __linux__
+  int optind_                                     = 0; /*for getopt replacement */
+#else
+  int optind_                                     = 1; /*for getopt replacement */
+#endif
+  std::string tracing_category_                  = "";
+  MPI_Info info_env_;
+
 #if HAVE_PAPI
   /** Contains hardware data as read by PAPI **/
   int papi_event_set_;
   papi_counter_t papi_counter_data_;
 #endif
 public:
-  explicit ActorExt(simgrid::s4u::ActorPtr actor, simgrid::s4u::Barrier* barrier);
+  explicit ActorExt(s4u::ActorPtr actor);
   ActorExt(const ActorExt&) = delete;
   ActorExt& operator=(const ActorExt&) = delete;
   ~ActorExt();
-  void set_data(const char* instance_id);
   void finalize();
   int finalized();
   int initializing();
@@ -51,11 +55,13 @@ public:
   void mark_as_initialized();
   void set_replaying(bool value);
   bool replaying();
+  void set_tracing_category(const std::string& category) { tracing_category_ = category; }
+  const std::string& get_tracing_category() { return tracing_category_; }
   smpi_trace_call_location_t* call_location();
   void set_privatized_region(smpi_privatization_region_t region);
   smpi_privatization_region_t privatized_region();
-  s4u::MailboxPtr mailbox() { return mailbox_; }
-  s4u::MailboxPtr mailbox_small() { return mailbox_small_; }
+  s4u::Mailbox* mailbox() { return mailbox_; }
+  s4u::Mailbox* mailbox_small() { return mailbox_small_; }
   s4u::MutexPtr mailboxes_mutex();
 #if HAVE_PAPI
   int papi_event_set();
@@ -71,9 +77,10 @@ public:
   void set_sampling(int s);
   int sampling();
   static void init();
-  simgrid::s4u::ActorPtr get_actor();
+  s4u::ActorPtr get_actor();
   int get_optind();
   void set_optind(int optind);
+  MPI_Info info_env();
 };
 
 } // namespace smpi