Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make field 'SwappedContext::worker_context_' private.
[simgrid.git] / src / kernel / context / ContextSwapped.hpp
index 7b2eed5..644245e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2009-2020. 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. */
@@ -41,14 +41,12 @@ public:
 
   void suspend() override;
   virtual void resume();
-  void stop() override;
+  XBT_ATTRIB_NORETURN void stop() override;
 
   virtual void swap_into(SwappedContext* to) = 0; // Defined in Raw, Boost and UContext subclasses
 
   unsigned char* get_stack();
 
-  static thread_local SwappedContext* worker_context_;
-
 #if HAVE_SANITIZER_ADDRESS_FIBER_SUPPORT
   const void* asan_stack_   = nullptr;
   size_t asan_stack_size_   = 0;
@@ -57,8 +55,10 @@ public:
 #endif
 
 private:
-  unsigned char* stack_ = nullptr;       /* the thread stack */
-  SwappedContextFactory* const factory_; // for sequential and parallel run_all()
+  static thread_local SwappedContext* worker_context_;
+
+  unsigned char* stack_ = nullptr; // the thread stack
+  SwappedContextFactory& factory_; // for sequential and parallel run_all()
 
 #if HAVE_VALGRIND_H
   unsigned int valgrind_stack_id_;