X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/67c723e593aeb7d51a39a70bd75bef02199aae60..73a0ae62cf92da83e861cfaf9ba0313cacbc4825:/src/kernel/context/Context.cpp diff --git a/src/kernel/context/Context.cpp b/src/kernel/context/Context.cpp index b20d7869fe..6827ff96c4 100644 --- a/src/kernel/context/Context.cpp +++ b/src/kernel/context/Context.cpp @@ -5,20 +5,21 @@ #include "mc/mc.h" +#include "simgrid/Exception.hpp" #include "simgrid/s4u/Host.hpp" #include "src/kernel/activity/CommImpl.hpp" #include "src/kernel/context/Context.hpp" +#include "src/sthread/sthread.h" #include "src/surf/surf_interface.hpp" #include XBT_LOG_NEW_DEFAULT_SUBCATEGORY(ker_context, kernel, "Context switching mechanism"); -namespace simgrid { -namespace kernel { -namespace context { +namespace simgrid::kernel::context { + +std::function ContextFactory::initializer; -ContextFactoryInitializer factory_initializer = nullptr; static e_xbt_parmap_mode_t parallel_synchronization_mode = XBT_PARMAP_DEFAULT; static int parallel_contexts = 1; unsigned stack_size; @@ -138,16 +139,10 @@ Context::~Context() void Context::stop() { - this->actor_->cleanup(); -} - -void Context::set_wannadie(bool value) -{ - XBT_DEBUG("Actor %s gonna die.", actor_->get_cname()); - iwannadie_ = value; + this->actor_->cleanup_from_self(); + sthread_disable(); + throw ForcefulKillException(); // clean RAII variables with the dedicated exception } AttachContext::~AttachContext() = default; -} // namespace context -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::context