From 207e186001374b77093f4064a2a25a9c626a989d Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sat, 5 Jan 2019 01:20:57 +0100 Subject: [PATCH] Inline SIMIX_context_get_current() --- src/kernel/context/Context.cpp | 11 ++++++++++- src/kernel/context/Context.hpp | 2 +- src/simix/smx_context.cpp | 19 ------------------- 3 files changed, 11 insertions(+), 21 deletions(-) diff --git a/src/kernel/context/Context.cpp b/src/kernel/context/Context.cpp index a5de192f1e..0aead0c913 100644 --- a/src/kernel/context/Context.cpp +++ b/src/kernel/context/Context.cpp @@ -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; +} diff --git a/src/kernel/context/Context.hpp b/src/kernel/context/Context.hpp index e6f425b30d..c543f410cc 100644 --- a/src/kernel/context/Context.hpp +++ b/src/kernel/context/Context.hpp @@ -34,6 +34,7 @@ public: virtual Context* create_maestro(std::function 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(); diff --git a/src/simix/smx_context.cpp b/src/simix/smx_context.cpp index 4f65ca70cb..14a36f9a84 100644 --- a/src/simix/smx_context.cpp +++ b/src/simix/smx_context.cpp @@ -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; -} -- 2.20.1