Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Kill dead code.
[simgrid.git] / src / kernel / context / ContextRaw.cpp
index 244fdd4..9351c54 100644 (file)
@@ -7,8 +7,8 @@
 
 #include "xbt/parmap.hpp"
 
-#include "src/simix/smx_private.h"
 #include "mc/mc.h"
+#include "src/simix/smx_private.hpp"
 
 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_context);
 
@@ -27,10 +27,11 @@ class RawContextFactory;
   * preserve the signal mask when switching. This saves a system call (at least on Linux) on each context switch.
   */
 class RawContext : public Context {
-protected:
+private:
   void* stack_ = nullptr;
   /** pointer to top the stack stack */
   void* stack_top_ = nullptr;
+
 public:
   friend class RawContextFactory;
   RawContext(std::function<void()> code,
@@ -57,7 +58,6 @@ public:
     void_pfn_smxprocess_t cleanup, smx_actor_t process) override;
   void run_all() override;
 private:
-  void run_all_adaptative();
   void run_all_serial();
   void run_all_parallel();
 };
@@ -267,10 +267,10 @@ RawContextFactory::RawContextFactory()
     xbt_os_thread_key_create(&raw_worker_id_key);
     // TODO, lazily init
     raw_parmap = nullptr;
-    raw_workers_context = xbt_new(RawContext*, nthreads);
+    raw_workers_context = new RawContext*[nthreads];
     raw_maestro_context = nullptr;
 #endif
-    // TODO, if(SIMIX_context_get_parallel_threshold() > 1) => choose dynamically
+    // TODO: choose dynamically when SIMIX_context_get_parallel_threshold() > 1
   }
 }
 
@@ -278,7 +278,7 @@ RawContextFactory::~RawContextFactory()
 {
 #if HAVE_THREAD_CONTEXTS
   delete raw_parmap;
-  xbt_free(raw_workers_context);
+  delete[] raw_workers_context;
 #endif
 }
 
@@ -408,7 +408,7 @@ void RawContext::suspend_parallel()
     XBT_DEBUG("No more processes to run");
     uintptr_t worker_id = (uintptr_t)
       xbt_os_thread_get_specific(raw_worker_id_key);
-    next_context = static_cast<RawContext*>(raw_workers_context[worker_id]);
+    next_context = raw_workers_context[worker_id];
     XBT_DEBUG("Restoring worker stack %zu (working threads = %zu)",
         worker_id, raw_threads_working);
   }
@@ -447,20 +447,4 @@ void RawContext::resume_parallel()
 #endif
 }
 
-/** @brief Resumes all processes ready to run. */
-void RawContextFactory::run_all_adaptative()
-{
-  unsigned long nb_processes = simix_global->process_to_run.size();
-  if (SIMIX_context_is_parallel() &&
-      static_cast<unsigned long>(SIMIX_context_get_parallel_threshold()) < nb_processes) {
-    raw_context_parallel = true;
-    XBT_DEBUG("Runall // %lu", nb_processes);
-    this->run_all_parallel();
-  } else {
-    XBT_DEBUG("Runall serial %lu", nb_processes);
-    raw_context_parallel = false;
-    this->run_all_serial();
-  }
-}
-
 }}}