Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
some useless s/process/actor/ in the source code
[simgrid.git] / src / simix / smx_private.hpp
index e6cc998..830a2f8 100644 (file)
@@ -8,10 +8,12 @@
 
 #include "simgrid/s4u/Actor.hpp"
 #include "src/kernel/context/Context.hpp"
-#include <csignal>
+#include "src/simix/ActorImpl.hpp"
+#include <xbt/xbt_os_thread.h>
 
 #include <boost/intrusive/list.hpp>
-#include <map>
+#include <mutex>
+#include <unordered_map>
 #include <vector>
 
 /********************************** Simix Global ******************************/
@@ -20,7 +22,7 @@ namespace simgrid {
 namespace simix {
 
 class Global {
-  friend XBT_PUBLIC bool simgrid::s4u::this_actor::isMaestro();
+  friend XBT_PUBLIC bool simgrid::s4u::this_actor::is_maestro();
 
 public:
   smx_context_factory_t context_factory = nullptr;
@@ -51,11 +53,7 @@ public:
   // This might be used when no corresponding function name is registered:
   simgrid::simix::ActorCodeFactory default_function;
 
-  smx_creation_func_t create_process_function = nullptr;
-  void_pfn_smxprocess_t kill_process_function = nullptr;
-  /** Callback used when killing a SMX_process */
-  void_pfn_smxprocess_t cleanup_process_function = nullptr;
-  xbt_os_mutex_t mutex                           = nullptr;
+  std::mutex mutex;
 
   std::vector<simgrid::xbt::Task<void()>> tasks;
   std::vector<simgrid::xbt::Task<void()>> tasksTemp;
@@ -65,8 +63,6 @@ public:
 }
 }
 
-extern "C" {
-
 XBT_PUBLIC_DATA std::unique_ptr<simgrid::simix::Global> simix_global;
 
 XBT_PUBLIC void SIMIX_clean();
@@ -82,6 +78,5 @@ XBT_PUBLIC void SIMIX_clean();
     _smx_throw_issuer->exception = std::make_exception_ptr(e);                                                         \
   } else                                                                                                               \
     ((void)0)
-}
 
 #endif