Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Inline SIMIX_context_get_current()
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 5 Jan 2019 00:20:57 +0000 (01:20 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 5 Jan 2019 00:20:57 +0000 (01:20 +0100)
src/kernel/context/Context.cpp
src/kernel/context/Context.hpp
src/simix/smx_context.cpp

index a5de192..0aead0c 100644 (file)
@@ -29,6 +29,7 @@ smx_context_t SIMIX_context_new(
 namespace simgrid {
 namespace kernel {
 namespace context {
+static thread_local smx_context_t smx_current_context;
 
 ContextFactoryInitializer factory_initializer = nullptr;
 
@@ -36,7 +37,7 @@ ContextFactory::~ContextFactory() = default;
 
 Context* ContextFactory::self()
 {
-  return SIMIX_context_get_current();
+  return smx_current_context;
 }
 
 void Context::declare_context(std::size_t size)
@@ -104,3 +105,11 @@ smx_context_t SIMIX_context_self()
     return nullptr;
 }
 
+/**
+ * @brief Sets the current context of this thread.
+ * @param context the context to set
+ */
+void SIMIX_context_set_current(smx_context_t context)
+{
+  simgrid::kernel::context::smx_current_context = context;
+}
index e6f425b..c543f41 100644 (file)
@@ -34,6 +34,7 @@ public:
   virtual Context* create_maestro(std::function<void()> code, smx_actor_t process);
 
   virtual void run_all() = 0;
+  /** @brief Returns the current context of this thread. */
   virtual Context* self();
   std::string const& name() const { return name_; }
 
@@ -146,7 +147,6 @@ XBT_PRIVATE void *SIMIX_context_stack_new();
 XBT_PRIVATE void SIMIX_context_stack_delete(void *stack);
 
 XBT_PUBLIC void SIMIX_context_set_current(smx_context_t context);
-XBT_PRIVATE smx_context_t SIMIX_context_get_current();
 
 XBT_PUBLIC int SIMIX_process_get_maxpid();
 
index 4f65ca7..14a36f9 100644 (file)
@@ -67,7 +67,6 @@ unsigned smx_context_stack_size;
 int smx_context_stack_size_was_set = 0;
 unsigned smx_context_guard_size;
 int smx_context_guard_size_was_set = 0;
-static thread_local smx_context_t smx_current_context;
 static int smx_parallel_contexts = 1;
 static int smx_parallel_threshold = 2;
 static e_xbt_parmap_mode_t smx_parallel_synchronization_mode = XBT_PARMAP_DEFAULT;
@@ -294,21 +293,3 @@ e_xbt_parmap_mode_t SIMIX_context_get_parallel_mode() {
 void SIMIX_context_set_parallel_mode(e_xbt_parmap_mode_t mode) {
   smx_parallel_synchronization_mode = mode;
 }
-
-/**
- * @brief Returns the current context of this thread.
- * @return the current context of this thread
- */
-smx_context_t SIMIX_context_get_current()
-{
-  return smx_current_context;
-}
-
-/**
- * @brief Sets the current context of this thread.
- * @param context the context to set
- */
-void SIMIX_context_set_current(smx_context_t context)
-{
-  smx_current_context = context;
-}