Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cosmetics in actors
[simgrid.git] / src / simix / ActorImpl.hpp
index aa24068..4464b61 100644 (file)
@@ -8,8 +8,8 @@
 
 #include "simgrid/s4u/Actor.hpp"
 #include "src/simix/popping_private.h"
-#include "xbt/fifo.h"
 #include "xbt/swag.h"
+#include<list>
 
 typedef struct s_smx_process_exit_fun {
   int_f_pvoid_pvoid_t fun;
@@ -44,7 +44,7 @@ public:
   unsigned long ppid = -1;
   simgrid::xbt::string name;
   const char* cname() { return name.c_str(); }
-  sg_host_t host        = nullptr; /* the host on which the process is running */
+  s4u::Host* host       = nullptr; /* the host on which the process is running */
   smx_context_t context = nullptr; /* the context (uctx/raw/thread) that executes the user function */
 
   // TODO, pack them
@@ -56,7 +56,7 @@ public:
 
   sg_host_t new_host            = nullptr; /* if not null, the host on which the process must migrate to */
   smx_activity_t waiting_synchro = nullptr; /* the current blocking synchro if any */
-  xbt_fifo_t comms               = xbt_fifo_new(); /* the current non-blocking communication synchros */
+  std::list<smx_activity_t> comms               ;           /* the current non-blocking communication synchros */
   xbt_dict_t properties         = nullptr;
   s_smx_simcall_t simcall;
   void *data          = nullptr; /* kept for compatibility, it should be replaced with moddata */
@@ -83,11 +83,11 @@ public:
 
   ~ActorImpl();
 
-  simgrid::s4u::Actor& getIface() { return piface_; }
+  simgrid::s4u::ActorPtr iface() { return s4u::ActorPtr(&piface_); }
 
 private:
   std::atomic_int_fast32_t refcount_ { 1 };
-  simgrid::s4u::Actor piface_;
+  simgrid::s4u::Actor piface_; // Our interface is part of ourselves
 };
 
 }