Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
obey sonar and make SwappedContext::stack_ private
[simgrid.git] / src / kernel / context / ContextSwapped.cpp
index cb2f314..b550205 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2018. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -134,9 +134,21 @@ SwappedContext::~SwappedContext()
   xbt_free(stack_);
 }
 
+void SwappedContext::set_maestro(SwappedContext* ctx)
+{
+  if (factory_->threads_working_ == 0) // Don't save the soul of minions, only the one of maestro
+    factory_->workers_context_[0] = ctx;
+}
+
+void* SwappedContext::get_stack()
+{
+  return stack_;
+}
+
 void SwappedContext::stop()
 {
   Context::stop();
+  /* We must cut the actor execution using an exception to properly free the C++ RAII variables */
   throw StopRequest();
 }